Una melodia da due array
Fa parte della sezione Uscite del percorso Arduino di Coddy. Lezione 14 di 24.
Le note di una melodia non hanno tutte la stessa durata. Un secondo array può contenere le durate, allineate alle note: notes[i] e durations[i] corrispondono.
int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};Due note uguali consecutive si confonderebbero in un'unica nota lunga. Una breve pausa dopo ciascuna le mantiene separate: riproduci la nota per la sua durata e aspetta un po' più a lungo:
tone(8, notes[i], durations[i]);
delay(durations[i] + 50);La durata interrompe la nota e i 50 ms aggiuntivi costituiscono la pausa prima della nota successiva.
Quando l'indice supera l'ultima nota, la melodia è finita: aspetta un momento prima di ricominciare, così non si sovrappone a se stessa.
Sfida
MedioSuona la prima riga di Twinkle Twinkle Little Star sul pin 8:
- note: 262, 262, 392, 392, 440, 440, 392
- durata: 400 ms ciascuna e 800 ms per l’ultima nota
- dopo ogni nota, attendi la sua durata più 50 ms
- dopo l’ultima nota, attendi un altro secondo e ricomincia
Premi Run, poi Check.
Provalo tu
const int buzzerPin = 8;
// crea qui gli array delle note e delle durate, e l'indice
void setup() {
}
void loop() {
// riproduci una nota, attendi la sua durata più 50 ms, poi passa alla successiva
// dopo l'ultima nota, attendi un secondo e ricomincia
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Uscite
Esercitati da solo: Playground Arduino