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 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

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.
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);
}
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