Arduino - Schallsensor - LED

In diesem Tutorial werden wir untersuchen, wie man den Schallsensor für die LED-Steuerung verwendet. Konkret werden wir zwei spannende Anwendungen untersuchen:

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×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Breadboard
1×Verbindungskabel
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.

Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.

Über LED- und Schallsensoren

Wenn Sie nichts über LED- und Schallsensoren wissen, lernen Sie in den folgenden Tutorials darüber:

Verdrahtungsdiagramm

Arduino Schallsensor LED Verdrahtungsdiagramm

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

Arduino-Code - Sound-Schalter schaltet LED um

Der folgende Code schaltet die LED bei jeder Erkennung eines Tons um.

/* * 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-led */ #define SENSOR_PIN A0 // Arduino pin connected to sound sensor's pin #define LED_PIN 7 // Arduino pin connected to LED's pin int lastSoundState; // the previous state of sound sensor int currentSoundState; // the current state of sound sensor int ledState = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set arduino pin to input mode pinMode(LED_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 LED ledState = !ledState; // control LED arccoding to the toggled state digitalWrite(LED_PIN, ledState); } }

Schnelle Schritte

  • Verbinden Sie den Arduino über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino-IDE, wählen Sie das richtige Board und den richtigen Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino hochzuladen.
Arduino IDE Code hochladen
  • Klatschen Sie vor dem Schallsensor in die Hände
  • Sehen Sie die Änderung des Zustands der LED

Code-Erklärung

Lies die zeilenweise Erläuterung in Kommentarzeilen des Quellcodes!

Arduino-Code - soundaktivierte LED für eine bestimmte Zeit

Der folgende Code schaltet die LED für eine bestimmte Zeit ein, wenn ein Geräusch erkannt wird. Nach Ablauf dieser Zeit wird die LED 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-led */ #define SENSOR_PIN A0 // Arduino pin connected to sound sensor's pin #define LED_PIN 7 // Arduino pin connected to LED'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(LED_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 LED digitalWrite(LED_PIN, HIGH); delay(TIME_PERIOD); // turn off LED digitalWrite(LED_PIN, LOW); } }

Bitte beachten Sie, dass der vorherige Code die delay()-Funktion verwendet, die leicht zu verstehen ist. Wenn jedoch zusätzlicher Code hinzugefügt wird, kann die delay()-Funktion während der Verzögerungsdauer zu Blockierungen führen. Um dies zu überwinden, implementiert der folgende Code einen nicht blockierenden Ansatz, indem er die ezLED-Bibliothek verwendet. Die ezLED-Bibliothek, die im Hintergrund arbeitet, verwendet die millis()-Funktion statt delay, um Blockierungen 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-led */ #include <ezLED.h> // ezLED library #define SENSOR_PIN A0 // Arduino pin connected to sound sensor's pin #define LED_PIN 7 // Arduino pin connected to LED's pin #define TIME_PERIOD 5000 // in milliseconds ezLED led(LED_PIN); // create a LED object that attach to pin LED_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() { led.loop(); // MUST call the led.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"); led.turnON(); // turn on immediately led.turnOFF(TIME_PERIOD); // turn off after TIME_PERIOD } }

Schnelle Schritte

  • Schließe Arduino über ein USB-Kabel an den PC an
  • Öffne die Arduino IDE, wähle das richtige Board und den richtigen Port
  • Gehe zum Symbol Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suche “ezLED”, und finde dann die LED-Bibliothek von ArduinoGetStarted
  • Klicke auf die Schaltfläche Installieren, um die ezLED-Bibliothek zu installieren.
Arduino LED-Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE
  • Klicke in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf Arduino hochzuladen
Arduino IDE Code hochladen
  • Klatsche deine Hand vor dem Schallsensor
  • Sieh dir die Änderung des LED-Zustands an

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!