Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Suona 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
}
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 Uscite

Esercitati da solo: Playground Arduino