Menu
CoddyTech

Simon: Tasten und Töne

Teil des Abschnitts Projekte der Arduino-Journey von Coddy. Lektion 13 von 24.

Simon ist ein Gedächtnisspiel: Das Spielfeld spielt ein Muster aus farbigen Lichtern und Tönen ab, und du wiederholst es mit den Tasten. In jeder Runde wächst das Muster um eins, bis du einen Fehler machst. Es gibt vier Farben, jede mit einer Taste, einer LED und einem Ton.

Bei vier von allem halten Arrays den Sketch kurz. Eintrag 0 jedes Arrays ist rot, 1 ist grün, 2 ist blau und 3 ist gelb, sodass eine Zahl, i, überall eine Farbe bezeichnet:

const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};

Eine for-Schleife prüft alle vier Tasten. Reagiere auf zwei Zeitpunkte: Eine Taste wird gedrückt (LOW jetzt, HIGH beim letzten Mal) und wieder losgelassen (HIGH jetzt, LOW beim letzten Mal). Das Array lastState speichert den letzten Messwert jeder Taste. In späteren Schritten wird ein Tastendruck gezählt, wenn die Taste wieder losgelassen wird. Diese Tasten prellen nicht, daher reichen die Flankenerkennungen aus.

challenge icon

Aufgabe

Mittel

Lass die vier Farben spielen:

  • in setup() setzt eine for-Schleife die LED-Pins als Ausgänge und die Tasten-Pins auf INPUT_PULLUP
  • wenn Taste i gedrückt wird, schalte ledPins[i] ein und spiele notes[i] auf Pin 8
  • wenn sie wieder losgelassen wird, schalte die LED aus und rufe noTone() auf

Drücke Run, spiele mit den Tasten und klicke dann auf Check.

Probier es selbst

// Ein Eintrag pro Farbe: Rot, Grün, Blau, Gelb
const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};  // C, E, G und hohes C
const int buzzerPin = 8;

int lastState[4] = {HIGH, HIGH, HIGH, HIGH};  // der letzte Messwert jedes Tasters

void setup() {
  // LEDs sind Ausgänge, Taster verwenden INPUT_PULLUP

}

void loop() {
  // Für jeden Taster: Wenn er gedrückt wird, seine LED einschalten und seinen Ton spielen;
  // wenn er losgelassen wird, beides ausschalten

}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Projekte

Übe selbstständig: Arduino-Playground