Nel punto 4 abbiamo acceso il LED e adesso, dobbiamo trovare il punto dove inserire il comando che lo spegnerà a fine esecuzione della nota.
Nel corso della nostra chiaccherata abbiamo detto che ad ogni nota è abbinato un tempo di esecuzione e che, per migliorare l’effetto “musicale”, fra una nota e l’altra viene introdotta una piccola pausa bene, noi dobbiamo inserire il comando di spegnimento del LED dopo l’arresto della nota.
Mentre per suonare una nota il comando è tone(), per spegnere il generatore di suoni il comando è noTone() ed è questo comando che dobbiamo cercare per cui
……..
// stop the waveform generation before the next note.
noTone(buzzer);
………
e inserire lo spegnimento del LED subito dopo il comando noTone().
In effetti, nella versione che trovate modificata da me, ho scelto di spegnere tutti i LED senza concentrarmi solo su quello appena acceso. Questa scelta è di tipo cautelativo e non ottimizzata. Va detto che, il ciclo di di spegnimento di tutti i LED si conclude in un tempo irrilevante per l’esecuzione delle note.
Il codice modificato secondo quanto detto diventa
………
// stop the waveform generation before the next note.
noTone(buzzer);
//Shut down all LED
for (int LEDOFF = 5; LEDOFF<14; LEDOFF = LEDOFF + 1)
{
digitalWrite(LEDOFF,LOW);
}
………
A questo punto, se abbiamo svolto bene il nostro lavoro, dobbiamo salvare le modifiche e lanciare la compilazione che si dovrebbe concludere senza errori. Se il risultato è positivo, procedete al caricamento del codice nel microcontrollore e verificatene la corretta funzionalità
Approfondimenti:
Provate a modificare il codice in maniera tale che ogni volta venga spento solo il LED precedentemente acceso.
Lascia un commento