Menu
CoddyTech

Simon: Pulsanti e note

Fa parte della sezione Progetti del percorso Arduino di Coddy. Lezione 13 di 24.

Simon è un gioco di memoria: la scheda riproduce una sequenza di luci colorate e note, e tu la ripeti premendo i pulsanti. A ogni round la sequenza cresce di un elemento, finché non commetti un errore. Ci sono quattro colori, ciascuno con un pulsante, un LED e una nota.

Con quattro elementi per ciascun tipo, gli array mantengono lo sketch breve. L’elemento 0 di ogni array è rosso, 1 è verde, 2 è blu e 3 è giallo, quindi lo stesso numero, i, indica un colore ovunque:

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

Un ciclo for controlla tutti e quattro i pulsanti. Intervieni in due momenti: quando un pulsante viene premuto (LOW ora, HIGH l’ultima volta) e quando viene rilasciato (HIGH ora, LOW l’ultima volta). L’array lastState conserva l’ultima lettura di ogni pulsante. Nei passaggi successivi, una pressione viene conteggiata quando il pulsante viene rilasciato. Questi pulsanti non presentano rimbalzi, quindi i controlli dei fronti sono sufficienti.

challenge icon

Sfida

Medio

Fai suonare i quattro colori:

  • in setup(), un ciclo for imposta i pin dei LED come uscite e i pin dei pulsanti su INPUT_PULLUP
  • quando il pulsante i viene premuto, accendi ledPins[i] e riproduci notes[i] sul pin 8
  • quando viene rilasciato, spegni il LED e chiama noTone()

Premi Run, prova i pulsanti, poi Check.

Provalo tu

// Una voce per colore: rosso, verde, blu, giallo
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 e C acuto
const int buzzerPin = 8;

int lastState[4] = {HIGH, HIGH, HIGH, HIGH};  // l'ultima lettura di ciascun pulsante

void setup() {
  // I LED sono uscite, i pulsanti sono INPUT_PULLUP

}

void loop() {
  // per ogni pulsante: quando viene premuto, accendi il suo LED e riproduci la sua nota;
  // quando viene rilasciato, spegnili

}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Progetti

Esercitati da solo: Playground Arduino