Det går att justera hur känslig ljuddetektorn ska vara.
Det är lätt att justera den, så att den så den reagerar på
klappningar 3 meter från mikrofonen och ändå inte reagerar på prat nära.
Vill du ha bättre upptagning gan du placera två ljuddetektorer i samma rum.
/*
Experiment med Arduino Uno R3
och en ljud-detektor
Klappa två gånger för att tända eller släcka en lysdiod
En aktiv ljud-detektor.
Koppla Uno GND till modul GND
Koppla Uno 5V till modul +5V
Koppla Uno 2 till modul OUT
En lysdiod och motstånd
Koppa Uno 8 till ett motstånd på 470 ohm.
Koppa andra ändan av motståndet till en lysdiod.
Koppa andra ändan av lysdioden till GND.
*/
#define pinneLED 8
#define pinneLjud 2
int LedOn = 0;
unsigned long SenasteKlappTid;
unsigned long NuKlappTid;
boolean VaxlaLed = false;
void setup() {
pinMode(pinneLjud, INPUT);
pinMode(pinneLED, OUTPUT);
//Denna startar ett avbrott om ljud kommer från modulen
attachInterrupt(0, Klapp, RISING);
SenasteKlappTid = millis();
}
void loop() {
if (VaxlaLed == true){
VaxlaLed = false;
if (LedOn == 0){
LedOn = 1;
digitalWrite(pinneLED, HIGH);
}else{
LedOn = 0;
digitalWrite(pinneLED, LOW);
}
}
}
//Avbrottsrutin(Interrupt)
//Justera tiderna så dom passar dig
void Klapp() {
NuKlappTid = millis();
//Denna är till för att inte lyssna på gamla ekon.
if (SenasteKlappTid + 500 > NuKlappTid){
return;
}
//Växla om klappningar har mellanrum på 0,5 till 1,5 sekunder
if (SenasteKlappTid + 500 < NuKlappTid){
if (SenasteKlappTid + 1500 > NuKlappTid){
VaxlaLed = true;
}
}
//Spara senaste tiden som förgende tid, för att mäta till nästa klapp
SenasteKlappTid = NuKlappTid;
}