Arduino - Capteur de son - Relais

Dans ce tutoriel, nous explorerons comment utiliser le capteur sonore pour contrôler un relais. Plus précisément, nous nous pencherons sur deux applications passionnantes :

En connectant un relais à une ampoule, une bande LED, un moteur ou un actionneur... nous pouvons utiliser le capteur sonore pour contrôler l'ampoule, la bande LED, le moteur ou l'actionneur...

À propos du relais et du capteur de son

Si vous ne connaissez pas les relais et les capteurs sonores (brochage, fonctionnement, programmation...), renseignez-vous à leur sujet dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage du relais de capteur de son Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino - Un interrupteur sonore bascule le relais

Le code ci-dessous bascule l'état du relais à chaque fois que le son est détecté.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-sound-sensor-relay */ #define SENSOR_PIN A0 // Arduino pin connected to sound sensor's pin #define RELAY_PIN A2 // Arduino pin connected to LED's pin int lastSoundState; // the previous state of sound sensor int currentSoundState; // the current state of sound sensor int relayState = LOW; // the current state of relay void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set arduino pin to input mode pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode currentSoundState = digitalRead(SENSOR_PIN); } void loop() { lastSoundState = currentSoundState; // save the last state currentSoundState = digitalRead(SENSOR_PIN); // read new state if (lastSoundState == HIGH && currentSoundState == LOW) { // state change: HIGH -> LOW Serial.println("The sound has been detected"); // toggle state of relay relayState = !relayState; // control relay arccoding to the toggrelay state digitalWrite(RELAY_PIN, relayState); } }

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour charger le code sur l'Arduino.
Téléversement de code de l'IDE Arduino
  • Applaudissez devant le capteur sonore
  • Observez le changement d'état du relais

Explication du Code

Lisez l'explication ligne par ligne dans les lignes de commentaire du code source !

Code Arduino - Relais activé par le son pour une période de temps

Le code ci-dessous active le relais pendant une période lorsque du son est détecté. Après cette période, le relais est désactivé.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-sound-sensor-relay */ #define SENSOR_PIN A0 // Arduino pin connected to sound sensor's pin #define RELAY_PIN A2 // Arduino pin connected to the relay's pin #define TIME_PERIOD 5000 // in milliseconds int lastSoundState; // the previous state of sound sensor int currentSoundState; // the current state of sound sensor void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set arduino pin to input mode pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode currentSoundState = digitalRead(SENSOR_PIN); } void loop() { lastSoundState = currentSoundState; // save the last state currentSoundState = digitalRead(SENSOR_PIN); // read new state if (lastSoundState == HIGH && currentSoundState == LOW) { // state change: HIGH -> LOW Serial.println("The sound has been detected"); // turn on relay digitalWrite(RELAY_PIN, HIGH); delay(TIME_PERIOD); // turn off relay digitalWrite(RELAY_PIN, LOW); } }

Veuillez noter que le code mentionné ci-dessus utilise la fonction delay() pour simplifier. Cependant, si vous intégrez du code supplémentaire, il peut se bloquer pendant le temps de retard. Pour remédier à cela, le code suivant met en œuvre une approche non bloquante en utilisant la Arduino - Bibliothèque ezLED.. En arrière-plan, la bibliothèque ezLED utilise la fonction millis() au lieu de delay pour éviter le blocage.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-sound-sensor-relay */ #include <ezLED.h> // ezLED library #define SENSOR_PIN A0 // Arduino pin connected to sound sensor's pin #define RELAY_PIN A2 // Arduino pin connected to the relay's pin #define TIME_PERIOD 5000 // in milliseconds ezLED relay(RELAY_PIN); // create a relay object that attach to pin RELAY_PIN int lastSoundState; // the previous state of sound sensor int currentSoundState; // the current state of sound sensor void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set arduino pin to input mode currentSoundState = digitalRead(SENSOR_PIN); } void loop() { relay.loop(); // MUST call the relay.loop() function in loop() lastSoundState = currentSoundState; // save the last state currentSoundState = digitalRead(SENSOR_PIN); // read new state if (lastSoundState == HIGH && currentSoundState == LOW) { // state change: HIGH -> LOW Serial.println("The sound has been detected"); relay.turnON(); // turn on relay immediately relay.turnOFF(TIME_PERIOD); // turn off relay after TIME_PERIOD } }

Étapes rapides

  • Connectez Arduino au PC via un câble USB
  • Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port
  • Accédez à l'icône Libraries sur la barre gauche de l'Arduino IDE.
  • Recherchez “ezLED”, puis trouvez la bibliothèque led par ArduinoGetStarted
  • Cliquez sur le bouton Install pour installer la bibliothèque ezLED.
Bibliothèque de LED Arduino
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'Arduino
Téléversement de code Arduino IDE
  • Tapez des mains devant le capteur sonore
  • Regardez le changement d'état du relais

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!