1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | // 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); } } } |