Utilizzeremo quanto appreso nei precedenti progetti per controllare tre led che simulano la sequenza luminosa di un semaforo per pedoni, dotato anche di avvisatore acustico per non vedenti.
Useremo tre Led di colore rosso, verde ed arancione (o giallo).
Colore rosso - vietato attraversare
Colore verde - si può attraversare
Colore verde e colore giallo lampeggiante con avvisatore acustico - attraversare rapidamente
Per i suoni, da emettere ad una frequenza specificata, utilizzeremo sulla porta digitale 9 un componente di nome buzzer, pilotato dal comando 'tone'.
Questo è il circuito da realizzare:
Questo lo sketch da leggere e comprendere con attenzione e quindi da caricare su Arduino a circuito completato.
In questo sketch useremo due nuove istruzioni; la prima è tone(pin, frequenza, durata) che invia al buzzer collegato al pin indicato, un segnale da tradurre in suono della frequenza e della durata specificate nella parentesi.
La seconda è un ciclo FOR che, a differenza del void loop che si ripete fino a quando Arduino è alimentato, si ripete un numero specificato di volte. Si scrive in questo modo:
for (i = 1; i<7; i = i+1) {
istruzioni da eseguire
}
Le istruzioni contenute tra le parentesi graffe si ripeteranno 6 volte, ovvero fino a quando la variabile i, inizialmente fissata ad 1, rimarrà minore del valore 7, tenuto conto che ad ogni esecuzione del ciclo la variabile i viene incrementata di 1 attraverso l'istruzione i=i+1 (o l'equivalente i++)
Nello sketch, per evitare la ripetizione delle stesse seguenze di istruzioni per i tre led, impariamo come programmare una nuova istruzione (funzione) alla quale attribuiamo un nome a piacere tipo 'accendiesuona' che, ogni volta che viene richiamata, accompagnata da 4 valori numerici interi (pin, durata led, durata suono) agisce sul led determinandone l'accensione e lo spegnimento e sul buzzer per provocare l'emissione di un suono alla frequqneza stabilita.
Questo il codice da leggere e comprendere con attenzione :