Arduino - Geluidsensor - LED

In deze handleiding gaan we verkennen hoe u een geluidsensor kunt gebruiken om een LED te besturen. We behandelen twee interessante toepassingen:

Hardware benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×Geluidsensor
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumperkabels
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LED en Geluidsensor

Als u nog niet bekend bent met de LED en geluidsensor (pinout, werking, programmeren, enz.), bekijk dan de volgende tutorials:

Aansluitschema

Arduino Geluidsensor LED Aansluitschema

This image is created using Fritzing. Click to enlarge image

Arduino Code - Geluidsschakelaar schakelt LED aan/uit

De onderstaande code schakelt steeds de status van de LED om wanneer geluid wordt gedetecteerd.

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); } }

Snelle Stappen

  • Verbind de Arduino met de PC via een USB-kabel
  • Open de Arduino IDE, selecteer het juiste board en de juiste poort
  • Kopieer de bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
Arduino IDE upload code
  • Klap met uw handen voor de geluidsensor
  • Bekijk de verandering van de status van de LED

Code Uitleg

Lees de regel-voor-regel uitleg in de commentaarregels van de broncode!

Arduino Code - Geluid-geactiveerde LED voor een tijdsperiode

De onderstaande code schakelt de LED aan voor een bepaalde tijd wanneer geluid wordt gedetecteerd. Na deze tijd gaat de LED weer uit.

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); } }

Let op dat de vorige code de delay() functie gebruikt, die makkelijk te begrijpen is. Echter, wanneer er meer code toegevoegd wordt, kan delay() voor blokkeringsproblemen zorgen tijdens de wachttijd. Om dit te voorkomen, implementeert de volgende code een niet-blokkerende methode met de ezLED bibliotheek. De ezLED bibliotheek werkt achter de schermen met de millis() functie in plaats van delay om blokkeren te voorkomen.

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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 } }

Snelle Stappen

  • Verbind de Arduino met de PC via een USB-kabel
  • Open de Arduino IDE, selecteer het juiste board en de juiste poort
  • Ga naar het Bibliotheken icoon in de linkerwerkbalk van de Arduino IDE
  • Zoek “ezLED” en vind de led-bibliotheek van ArduinoGetStarted
  • Klik op de Installeren knop om de ezLED bibliotheek te installeren
Arduino led bibliotheek
  • Kopieer de bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
Arduino IDE upload code
  • Klap met uw handen voor de geluidsensor
  • Bekijk de verandering van de status van de LED

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!