Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I Buzzer con Arduino

Come utilizzare i buzzer con Arduino.
Come utilizzare i buzzer con Arduino.
Link copiato negli appunti

Nell’articolo precedente ci siamo concentrati su uno dei pezzi più utilizzati in elettronica, ovvero, il condensatore, oggi parleremo invece di un altro semplice componente ovvero il buzzer.

Il Buzzer

Molti possessori un computer hanno dovuto, volenti o nolenti, aver a che fare con il beep del buzzer, atto a segnalare qualche malfunzionamento della macchina.
Quelli meno giovani ricorderanno anche il suono dei vecchi modem a 56k che veniva appunto emesso da un buzzer a diverse frequenze.
In quest'articolo vedremo come sfruttare un buzzer per scopi un po' meno fastidiosi!
Utilizzare i buzzer con Arduino è semplice e divertente, e vedremo quindi come far eseguire al buzzer semplici suoni a frequenze specifiche (1000Hz in questo caso), tramite loop di output e delay. Come al solito, prima di parlare del nostro progetto, è bene introdurre il buzzer in generale.
Il buzzer, anche conosciuto in Italia come "cicalino", venne introdotto alla fine degli anni ottanta del secolo scorso ed è tutt'oggi utilizzato su diversi dispositivi adoperati quotidianamente.
In pratica è un componente elettronico di segnalazione audio: un piccolo altoparlante in grado di emettere toni a determinate frequenze (il classico "beep!").
Si divide in tre principalmente categorie, ovvero meccanico, elettromeccanico e piezoelettrico (nell'articolo verrà utilizzato proprio quest'ultimo).
Esistono buzzer attivi e passivi, la principale differenza tra essi consiste nel fatto che un buzzer di tipo "attivo" è in grado di generare toni in autonomia (ovviamente si parla di toni preimpostati dal produttore), mentre il buzzer "passivo" necessita di un microcontrollore che generi una forma d'onda in modo tale da far vibrare la membrana interna del componente emettendo così la frequenza desiderata.
Arduino ben si presta per adempiere a questo scopo.
I buzzer di tipo "attivo" sono dotati di ulteriore elettronica mentre quelli passivi ne risultano sprovvisti. Passiamo alla costruzione del circuito.

Costruire il circuito

Abbiamo deciso di utilizzare il classico buzzer per la segnalazione degli errori delle schede madri poiché questo è sicuramente quello di uso più comunque e di conseguenza il più facile da reperire in qualsiasi rivendita.
Per costruire il circuito sarà sufficiente collegare il polo negativo del buzzer a GND e quello positivo a all'uscita digitale numero 2 (D2), come si può vedere nello sketch sottostante:

In questo caso Arduino sarà alimentato direttamente dalla porta usb del computer ma è agevole adattare questo progetto per ottenere alimentazione da batterie. Ovviamente si sarebbe potuta utilizzare un'uscita digitale qualunque. La stessa libertà di scelta vale per il tipo di board scelta per il progetto, sarà infatti sufficiente adoperare anche un semplice ed economico Arduino Nano per la realizzazione di questo progetto. Effettuati i collegamenti necessari sarà il momento di passare alla stesura del codice. A seguire un esempio per ottenere lo scopo.

Il codice

Il codice è molto semplice. Non fa altro che emettere dei beep a una frequenza specifica per un tempo determinato, dopodiché con un delay, sempre dal tempo prestabilito, si ottiene silenzio tra un suono e l'altro, permettendo così di generare il classico beep di allarme.
Ecco il codice:

void setup()
{
pinMode(2,OUTPUT); //buzzer connesso al pin 2
}
void loop()
{
tone(2, 1000, 500); //suona una nota alla frequenza di 1000Hz per la durata di 500 ms
delay(1500); //attende 1500 ms
tone(2, 1000, 500);
delay(1500);
tone(2, 1000, 2000); //suona una nota alla frequenza di 1000Hz per la durata di 2 secondi
delay(2000); //attende 2 secondi
}

Analizzando il codice se ne comprende immediatamente il funzionamento.
Nella prima linea di codice si imposta la connessione al polo positivo del buzzer, in questo caso l'uscita digitale numero 2. Passando poi al loop viene utilizzato il comando tone, al quale sono stati assegnati tre parametri: il primo è il numero del pin selezionato, il secondo rappresenta la frequenza di emissione del beep (in questo caso la frequenza è stata impostata a 1000Hz). Il terzo parametro è la lunghezza del suono espressa i millisecondi, da notare che nello sketch sono variate le lunghezze del suono per creare un leggero "gioco" di beep. Non meno importante il comando delay, senza il quale ne risulterebbe un unico suono lungo come la somma totale dei vari comandi tone, In questo caso ne scaturirebbe un unico beep di tre secondi (500+500+2000=3000ms). Si sarebbe potuto utilizzare anche il comando noTone, che semplicemente silenzia il buzzer e di conseguenza potrebbe fungere da delay alternativo.
Una volta compreso come utilizzare tone/delay il resto del codice risulterà banale.

Il buzzer per musicisti

In realtà è possibile ottenere molto di più dal buzzer ed un Arduino, infatti è possibile ricreare vere e proprie musiche dato che ogni nota ha una specifica frequenza e un esatto periodo in millisecondi, come si può notare nella foto sottostante.

Per apprendere tutto su come utilizzare frequenze e tempi per ricreare note specifiche è sufficiente procurarsi su web la frequenze delle singole note e cercare uno spartito della canzone che si desidera riprodurre con Arduino.
Le Frequenze sono da inserire tassativamente senza le cifre decimali, altrimenti la Ide di Arduino rileverà un errore, in quanto il comando tone è in grado di leggere solamente i numeri interi e non quelli in virgola mobile (anche conosciuti come float).
Esistono già centinaia di progetti con le canzoni più note (a esempio la marcia imperiale di Star Wars o la musica di Mario Bros), che possono essere facilmente reperiti su github o altrove sulla Rete.
Il buzzer è un componente molto importante ed è è essenziale conoscerne il funzionamento se si desidera creare progetti più complessi, infatti questo piccolo componente elettronico risulta utile in molti progetti e, oltre ad essere di semplice utilizzo (come si è appena potuto constatare) ed economico, si presta anche a tantissimi usi.
Con le conoscenze acquisite in questo articolo si può facilmente adattare un buzzer a svariati tipi di progetti, più in là si avrà occasione di vederlo in diversi circuiti che verranno realizzati sempre nell'ambito di questa guida. Ora che si sono imparate le basi dei buzzer è arrivato il momento di passare a qualcosa dal suono più potente ed intenso: la sirena.
Nel prossimo articolo vedremo il funzionamento di una sirena e costruiremo un semplice allarme che la farà squillare al passaggio di una persona, cosa che permetterà tra l'altro di far conoscenza anche di un altro utilissimo componente: il sensore laser.

Ti consigliamo anche