Hallo,
ich habe mir einen Klatschschalter nach folgendem Vorbild gebaut:
http://itp.nyu.edu/physcomp/sensors/Reports/CondenserMicrophones
Funktioniert auch alles soweit, jedoch möchte ich die Funktion etwas abändern: und zwar soll beim ersten Geräusch ein Ausgang auf HIGH geschaltet werden, und beim 2. Geräusch ein zweiter Ausgang.
Hier mal der Code, wie er momentan funktioniert.
const int mikroIN = A4; // Mikrofon
int mikroValue = 0;
mikroValue = analogRead(mikroIN);
lcd.setCursor(13,0);
lcd.print(mikroValue);
lcd.setCursor(0,1);
lcd.print("[ms]:");
lcd.setCursor(7,1);
lcd.print(soundverzoegerung);
lcd.setCursor(13,1);
lcd.print(schwelle);
if(mikroValue >= schwelle)
{
delay(soundverzoegerung);
lcd.setCursor(3,0);
lcd.print("--SOUND--");
if (einaus == 1)
{
digitalWrite(optoflash, HIGH);
delay(100);
digitalWrite(optoflash,LOW);
delay(5000);
}
else
{
digitalWrite(optoflash,LOW);
delay(1000);
}
lcd.clear();
}
else
{
digitalWrite(optoflash,LOW);
lcd.setCursor(5,0);
lcd.print("READY");
}
Nun habe ich folgendes ergänzt/probiert:
int count = 0;
if(mikroValue >= schwelle)
{
count++;
}
switch(count)
{
case 0:
//Ready-Anzeige auf dem LCD
break;
case 1:
digitalWrite(Ausgang1,HIGH);
delay(100);
digitalWrite(Ausgang1,LOW);
break;
case 2:
//Code der bereits oben steht
count=0;
break;
}
}
Irgendwie will das aber nicht. Ich hatte auch probiert mir den aktuellen Zustand von Count auf dem LCD anzeigen zu lassen, jedoch hat es nie übereingestimmt. Habe ich was mit count++ falsch gemacht, oder wieso will er zwischen den 3 Fällen bei jedem Klatschen nicht wechseln?