const int LAUTSPRECHER = 8; // Array für die Töne c bis h int Tonleiter[] = {261, 293, 329, 349, 391, 440, 493}; /* Tasten cdefgah erzeugt jeweils die entsprechende Frequenz c → Tonleiter[0] d → Tonleiter[1] e → Tonleiter[2] . . . erst wenn return gedrückt wurde, wird die Tonfolge gespielt */ int Tondauer = 700; int Pause = 300; void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} } void loop() { // auf serielle Eingabe warten while (Serial.available() > 0) { // solange lesen, bis return \n eingegeben wurde String Eingabe = Serial.readStringUntil("\n"); // das letzte Zeichen ist return(\n) → soll entfernt werden Eingabe = Eingabe.substring(0, Eingabe.length() - 1); Serial.println(Eingabe); // String Eingabe untersuchen und Ton ausgeben for (int i = 0; i <= Eingabe.length(); i ++) { if (Eingabe[i] == 'c') { tone(LAUTSPRECHER, Tonleiter[0]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } if (Eingabe[i] == 'd') { tone(LAUTSPRECHER, Tonleiter[1]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } if (Eingabe[i] == 'e') { tone(LAUTSPRECHER, Tonleiter[2]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } if (Eingabe[i] == 'f') { tone(LAUTSPRECHER, Tonleiter[3]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } if (Eingabe[i] == 'g') { tone(LAUTSPRECHER, Tonleiter[4]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } if (Eingabe[i] == 'a') { tone(LAUTSPRECHER, Tonleiter[5]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } if (Eingabe[i] == 'h') { tone(LAUTSPRECHER, Tonleiter[6]); delay(Tondauer); noTone(LAUTSPRECHER); delay(Pause); } } } }