Arduino - Schallsensor - Relais

In diesem Tutorial werden wir untersuchen, wie man den Schallsensor verwendet, um ein Relais zu steuern. Genauer gesagt, werden wir zwei spannende Anwendungen untersuchen:

Indem man das Relais an eine Glühbirne, einen LED-Streifen, einen Motor oder einen Aktuator anschließt... Wir können den Schallsensor verwenden, um eine Glühbirne, einen LED-Streifen, einen Motor oder einen Aktuator zu steuern...

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Schallsensor
1×Relais
1×Verbindungskabel
1×(Optional) Magnetschloss
1×(Optional) 12V Netzteil
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Relais und Schallsensoren

Wenn Sie nichts über Relais und Schallsensoren wissen (Pinbelegung, wie sie funktionieren, wie man sie programmiert ...), informieren Sie sich in den folgenden Tutorials darüber:

Verdrahtungsdiagramm

Arduino-Schallsensor-Relais-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Arduino-Code - Klangschalter schaltet das Relais

Der untenstehende Code schaltet das Relais jedes Mal um, wenn ein Geräusch erkannt wird.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); } }

Schnelle Schritte

  • Verbinde Arduino über USB-Kabel mit dem PC
  • Öffne die Arduino IDE und wähle das richtige Board und den richtigen Port
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE
  • Klicke auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen
Arduino IDE Code hochladen
  • Klatsche deine Hand vor dem Schallsensor
  • Sieh die Änderung des Relaiszustands

Code-Erklärung

Lies die zeilenweise Erklärung in Kommentarzeilen des Quellcodes!

Arduino-Code - Schallgesteuertes Relais für eine bestimmte Zeit

Der untenstehende Code schaltet das Relais für eine bestimmte Zeit ein, wenn ein Geräusch erkannt wird. Nach Ablauf dieser Zeit wird das Relais ausgeschaltet.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); } }

Bitte beachten Sie, dass der oben erwähnte Code aus Gründen der Einfachheit die Funktion delay() verwendet. Wenn Sie jedoch zusätzlichen Code integrieren, kann dieser während der Verzögerung blockiert werden. Um dem entgegenzuwirken, implementiert der folgende Code einen nicht-blockierenden Ansatz mit der ezLED-Bibliothek. Hinter den Kulissen verwendet die ezLED-Bibliothek millis() anstelle von delay, um eine Blockierung zu verhindern.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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 } }

Schnelle Schritte

  • Schließen Sie Arduino über ein USB-Kabel an den PC an.
  • Öffnen Sie die Arduino IDE, wählen Sie das richtige Board und den richtigen Port aus.
  • Navigieren Sie zum Symbol Bibliotheken in der linken Leiste der Arduino IDE.
  • Suchen Sie “ezLED”, und finden Sie dann die ezLED-Bibliothek von ArduinoGetStarted.
  • Klicken Sie auf die Schaltfläche Installieren, um die ezLED-Bibliothek zu installieren.
Arduino LED-Bibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen
Code in der Arduino-IDE hochladen
  • Klatschen Sie vor dem Schallsensor in die Hände
  • Sehen Sie die Änderung des Relaiszustands

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!