Arduino Buzzer

Cosa è un Buzzer? Si tratta di un dispositivo in grado di emettere un suono, tipicamente metallico e poco armonico, usato come elemento per attirare l’attenzione di un utente, un operatore, un uomo… E’ formato da un elemento vibrante realizzato con un piezo. Eccitandolo con energia elettrica a bassa tensione emette un suono grazie alla sua vibrazione meccanica. Esistono buzzer che possono emettere suono fornendogli una tensione continua e buzzer che possono vibrare a diverse frequenze emettendo quindi suoni diversi.

Generalmente si presenta come in figura qui sopra. E’ un dispositivo a due fili, normalmente colorati rosso e nero che rispettivamente indicano il polo positivo ed il negativo.

E che centra con Arduino? Centra perchè possiamo usarlo priprio con Arduino per aggiungere al nostro progettino un elemento in grado di emettere un suono per i più disparati casi. Possiamo emettere un suono in alcuni esempi:

  • alla pressione di un tasto
  • allarme o stato del sistema
  • rilevamento di distanza
  • verificarsi di una condizione esterna (come l’arrivo di un SMS o l’apertura di una porta…)
  • ….

Insomma le esigenze sono innumerevoli.

Vediamo come usarlo.

Abbiamo bisogno dei seguenti componenti:

  • un Arduino
  • un buzzer
  • una resistenza

Collegheremo il negativo del buzzer al negativo di Arduino attraverso la resistenza ed il polo positivo del buzzer ad una uscita di Arduino. Sceglieremo una uscita PWM se vogliamo che il nostro buzzer generi suoni a diverse frequenze (fare riferimento a questo link nel caso di Arduino Nano v3.0 per individuare una uscita PWM – clicca qui per leggere l’articolo sul PWM).

All’interno delle librerie standard di Arduino vi sono già le funzioni per generare specifici segnali per pilotare dispositivi di questo tipo.

Quindi potremo scrivere direttamente il nostro codice:

const int buzzer = 7; //buzzer to arduino pin 7


void setup(){
 
  pinMode(buzzer, OUTPUT); // pin 7 - output mode

}

void loop(){
 
  tone(buzzer, 1000); // Send 1KHz sound signal...
  delay(1000);        // ...for 1 sec
  noTone(buzzer);     // Stop sound...
  delay(1000);        // ...for 1sec
  
}

In questo modo avremo settato il PIN 7 come uscita digitale. Nel ciclo loop emetteremo un tono ad 1kHz con l’istruzione tone() seguito da una pausa di un secondo e poi annulleremo l’uscita con l’istruzione noTone() seguita da una pausa. L’effetto finale sarà un suono a 1kHz per un secondo seguito da una pausa di un secondo.