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.
Sfida
MedioFai suonare i quattro colori:
- in
setup(), un cicloforimposta i pin dei LED come uscite e i pin dei pulsanti suINPUT_PULLUP - quando il pulsante
iviene premuto, accendiledPins[i]e riproducinotes[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
}
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