Arduino per tutti stagione 2 puntata 5: far suonare Arduino

Riprendiamo la rubrica dedicata ad Arduino dopo un po’ di pausa (i tempi sono sempre ristretti, purtroppo). Iniziamo con il vedere più approfonditamente l’uso di un componente che già abbiamo messoin azione nel sistema antiincendio: il buzzer.

Un buzzer
Un buzzer

Un buzzer o beeper è un dispositivo di segnalazione audio. Può essere meccanico, elettromeccanico, o piezoelettrico. Il buzzer è utilizzato di solito in dispositivi di allarme, timer, e PC speaker per i feedback sugli input dell’utente (pressione dei tasti o click del mouse) e nei vecchi personal computer.

Questo componente si collega all’Arduino in maniera molto semplice: basta collegare il cavo nero alla massa (GND) e quello rosso a un pin di uscita (ad esempio il pin 12, come in figura 1

Schema del collegamento Arduino -><figcaption class=buzzer” class=”size-medium” /> Figura 1: Schema del collegamento Arduino -> buzzer

Una volta collegato il buzzer, occorre programmare Arduino perché faccia suonare il nostro componente. Dopo aver aperto l’IDE di Arduino, occorre innanzitutto inizializzare il pin collegato al buzzer definendo una variabile di tipo int (solo numeri interi) che contenga il numero del pin usato.

int buzzer = 12; //buzzer connesso al pin 3

Nella funzione setup, dove vengono inseriti i comandi da far partire all’inizio, si inserisce il comando di inizializzazione del pin. L’istruzione è pinMode, a cui vanno passati come parametri il pin (con la variabile definita più sopra) e la direzione delle informazioni, in questo caso vedo l’esterno (OUTPUT).

void setup()
{
pinMode(buzzer,OUTPUT);
}

Nella funzione loop, invece, collocheremo l’istruzione per far suonare il buzzer, ovvero tune. A questa istruzione occorre passare tre parametri: il pin connesso al buzzer (la variabile impostata in precedenza), la frequenza da trasmettere (in questo caso, 1000Hz) e la durata (500 millisecondi).

void loop()
{
tone(buzzer,1000,500); //suona nota sul pin 12 alla frequenza di 1000Hz
delay(2000); //aspetta 2 secondi

Il nostro sketch potrebbe essere già pronto e funzionante.

View post on imgur.com

Però, per renderlo effettivamente più fruibile, soprattutto per operazioni più complesse, è meglio chiudere il ciclo suono pausa con la funzione inversa di tone, ovvero noTone, al quale basta passare solo il parametro relativo al pin utilizzato (sempre la nostra variabile buzzer).

noTone(buzzer); //non suona
delay(1000);
}

View post on imgur.com

Bene, ecco fatto. Il nostro buzzer ora emette suoni ad intervalli regolari.
Ecco un video che lo dimostra…

https://drive.google.com/file/d/1Jd40CLn_bKMkUMsYviZ20QpWRACV57aK/view?usp=sharing

Ma se volessimo rendere un po’ più orecchiabile il nostro Arduino, che so, fargli suonare note diverse?
Pazienza, lo vedremo nella prossima puntata (attenzione! E’ una minaccia…)
Alla prossima

Ah, quasi dimenticavo, questo è lo sketch relativo a questo post:
https://tinyurl.com/y6hnjny8

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *