// Frequenzen: c' d' e' f' g' a' h' c''
int Tonleiter[] =
{261, 293, 329, 349, 391, 440, 493, 523, 493, 440, 391, 349, 329, 293, 261};
// Länge der Töne "Tonleiter" in Millisekunden
int TonlaengeTonleiter[] =
{200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200};
// Frequenzen "Alle meine Entchen“
int AlleMeineEntchen[] =
{261, 293, 329, 349, 391, 391, 440, 440, 440, 440, 391, 440, 440, 440, 440, 391, 349, 349, 349, 349, 329, 329, 391, 391, 391, 391, 261};
// Länge der Töne "Alle meine Entchen“ in Millisekunden
int TonlaengeAlleMeineEntchen[] =
{250, 250, 250, 250, 500, 500, 250, 250, 250, 250, 500, 250, 250, 250, 250, 500, 250, 250, 250, 250, 500, 500, 250, 250, 250, 250, 500, 500};
// Frequenzen "Bruder Jakob“
int BruderJakob[] =
{349, 391, 440, 349, 349, 391, 440, 349, 440, 466, 523, 440, 466, 523 };
// Länge der Töne "Bruder Jakob“ in Millisekunden
int TonlaengeBruderJakob[] =
{500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 1000, 500, 500, 1000};
// Frequenzen "Backe backe Kuchen“
int BackeKuchen[] =
{440, 440, 493, 493, 440, 369, 293, 440, 440, 493, 493, 440,
369};
// Länge der Töne "Backe backe Kuchen“ in Millisekunden
int TonlaengeBackeKuchen[] =
{250, 250, 250, 250, 500, 250, 250, 250, 250, 250, 250, 500, 250};
int LAUTSPRECHER = 4;
int Taster;
int Analogwert;
void setup()
{
// wenn der Wert der gedrückten Taste angezeigt werden soll
// Serial.begin(9600);
}
int Tasterabfrage()
{
int Analogwert = analogRead(A0);
// kurzes delay() -> doppelten Tastendruck so weit wie möglich verhindern
delay(200);
/*
A0 gibt je nach Taster einen Wert aus
über den Seriellen Monitor wird dieser Wert angezeigt
und kann dann eventuell angepasst werden
*/
// Serial.println(Analogwert);
switch (Analogwert)
{
case 0 ... 20:
Taster = 1;
break;
case 30 ... 60:
Taster = 2;
break;
case 70 ... 120:
Taster = 3;
break;
case 150 ... 200:
Taster = 4;
break;
case 300 ... 400:
Taster = 5;
break;
default:
return 0;
}
// gedrückten Taster zurückgeben
return Taster;
}
void loop()
{
Taster = Tasterabfrage();
// Taste links
if (Taster == 1)
{
// Alle meine Entchen
for (int i = 0; i < sizeof(AlleMeineEntchen) / sizeof(AlleMeineEntchen[0]); i ++)
{
tone(LAUTSPRECHER, AlleMeineEntchen[i]);
delay(TonlaengeAlleMeineEntchen[i]);
delay(10);
noTone(LAUTSPRECHER);
}
}
// Taste oben Mitte
// backe backe Kuchen spielen
if (Taster == 2)
{
// Backe backe Kuchen
for (int i = 0; i < sizeof(BackeKuchen) / sizeof(BackeKuchen[0]); i ++)
{
tone(LAUTSPRECHER, BackeKuchen[i]);
delay(TonlaengeBackeKuchen[i]);
delay(20);
noTone(LAUTSPRECHER);
}
}
// Taste unten Mitte
// Tonleiter spielen
if (Taster == 3)
{
for (int i = 0; i < sizeof(Tonleiter) / sizeof(Tonleiter[0]); i ++)
{
tone(LAUTSPRECHER, Tonleiter[i]);
delay(TonlaengeTonleiter[i]);
delay(10);
noTone(LAUTSPRECHER);
}
}
// Taste rechts
// Bruder Jakob spielen
if (Taster == 4)
{
// Bruder Jakob
for (int i = 0; i < sizeof(BruderJakob) / sizeof(BruderJakob[0]); i ++)
{
tone(LAUTSPRECHER, BruderJakob[i]);
delay(TonlaengeBruderJakob[i]);
delay(10);
noTone(LAUTSPRECHER);
}
}
}