I moduli buzzer permettono, emettendo un suono, di segnalare per esempio situazioni di pericolo o il raggiungimento di un tempo prestabilito.
In commercio ne esistono di due tipologie: passivo come il KY-006, Ks0018 oppure attivo KY-012, Ks0018.
La differenza è nel tipo di buzzer utilizzato. In quello passivo il suono deve essere generato dal circuito di controllo. In quello attivo il circuito per la generazione del suono è già presente all’interno del buzzer.
Vediamo ora come collegare i moduli buzzer attivi passivi e gestirli con la scheda Arduino o la scheda Micro:Bit.
Indice
Principio di funzionamento
Il Buzzer o in italiano cicalino è un dispositivo audio di segnalazione, che può essere di tipo meccanico, elettromeccanico o piezoelettrico.
I moduli buzzer possono essere attivi o passivi. Attivi se hanno al loro interno un oscillatore che emetterà suono se vengono alimentati, mentre se è di tipo passivi non posseggono un oscillatore interno e quindi per emettere un suono è indispensabile fornire al buzzer un segnale ad onda quadra tra i 2Khz e i 5 Khz.
Gli usi tipici dei cicalini sono nei cercapersone, gli allarmi, timer e la conferma di input dell’utente, come un clic del mouse o della tastiera.
Segnalatore acustico piezoelettrico con/senza elettronica
Il cuore dei segnalatori acustici piezoelettrici è un semplice disco piezoelettrico, consistente di una lastra ceramica e uno strato metallico applicato.
Quando il disco viene pilotato da un circuito oscillatorio, si parla di un trasduttore piezoelettrico, quando il circuito oscillatorio è incorporato nella cassa si parla di un buzzer piezoelettrico.
Il vantaggio di questa costruzione semplice è la robustezza e la produzione a basso costo.
Questi dispositivi sono perfettamente adatti per segnali di allarme e di controllo a banda stretta di frequenza, per esempio in elettrodomestici o nella tecnologia medica.
I buzzer elettromagnetici, nel loro principio di funzionamento, corrispondono ai trasduttori elettromagnetici, dispongono comunque di un elettronica incorporata.
Consistono in una membrana metallica, la quale viene messa in vibrazione per mezzo di un circuito elettromagnetico. Il circuito oscillatorio incorporato permette un comando tramite corrente diretta.
I buzzer elettromagnetici vengono impiegati prevalentemente laddove circuiti oscillatori esterni significano un dispendio troppo grosso, per esempio con un basso numero di pezzi.
Foto dei moduli testati
Modulo Buzzer passivo KY-006 | |
Modulo Buzzer attivo KY-0012 | |
Modulo Buzzer passivo Codice Ks0019 | |
Modulo Buzzer attivo Codice Ks0018 |
In vendita si trovano altri moduli, tutti sono comunque riconducibili alle due tipologie di Attivo e Passivo.
Circuito elettrico dei moduli
Moduli KY-006 e KY-012
Il circuito dei due moduli (attivo e passivo) è identico e formato semplicemente da un connettore e dal Buzzer. Quello che cambia è il tipo di Buzzer: in un caso sarà del tipo passivo e nel secondo del tipo attivo.
Quest’ultimo ha all’interno un circuito elettronico che quando è alimentato si occuperà di produrre una specifica frequenza. Del connettore sono collegati solamente il pin GND e Segnale.
La corrente sarà quella fornita dal pin di Arduino
Caratteristiche del modulo:
- Tensione di funzionamento: 3.3-5V
- Dimensioni: 15x19x9 mm
- Peso: 2,4g
Moduli Ks0018 e Ks0019
Nel caso dei moduli realizzati dalla Keyestudio il circuito dei due moduli (attivo e passivo) è identico.
Questo però è più complesso dei precedente in quanto è stato inserito un transistor di tipo NPN tipo S8050 (datasheet) che funge da interruttore tra il pin di controllo di Arduino e il carico.
In questo caso la porta di controllo non dovrà fornire la corrente di alimentazione del modulo ma solamente quella di comando del transistor.
Sono presenti due resistenze, una sulla base del transistor R1, e una limitatrice sul pin di alimentazione del buzzer R2.
Anche in questo caso quello che cambia è solamente il tipo di Buzzer in un caso sarà del tipo passivo e nel secondo del tipo attivo al cui interno è presente un circuito elettronico che quando è alimentato si occuperà di produrre una specifica frequenza.
Data la differenza del circuito del sensore al connettore del modulo dovrà essere collegato oltre che a GND , segnale anche il pin di alimentazione collegato a 3.3V o 5V .
Caratteristiche del modulo:
- Tensione di funzionamento: 3.3-5V
- Dimensioni: 30x20x10 mm
- Peso: 3 g
Caratteristiche dei buzzer
Sotto sono riportate le caratteristiche di esempio tratte da alcuni datasheet. Queste potrebbero essere diverse a seconda del modello effettivamente utilizzato.
Buzzer passivo
Buzzer attivo
Dove trovare il moduli buzzer attivi e passivi
Il modulo potrà essere trovato all’interno del Kit 37 Sensori per Arduino (codice HMTKITS) in vendita presso il sito Homotix. Inserire ilo codice sconto “ADRIROBOT” per ottenere uno sconto del 3%
Il kit è anche disponibile presso il sito Futura Elettronica (codice 1606-SENSORKIT37).
Presso il sito Futura Elettronica è possibile trovare anche trovare il singolo Modulo Attivo (codice 8300-KY012).
Altra possibilità per trovare i moduli buzzer attivi passivi è il Keyestudio 37-in-1 Starter Kit for BBC micro:bit che contiene una selezione dei sensori più comunemente usati e più utili in elettronica. Per il kit è disponibile online un tutorial con svariati progetti creativi per apprendere le basi dell’elettronica e programmare le schede BBC Micro bit V1 o V2. Il kit è acquistabile presso Amazon mediante questo link
Test base del modulo buzzer passivo (KY-006 e Ks0019)
Test base per la prova di funzionamento del modulo. Prevede l’utilizzo di un Arduino UNO collegato ad uno dei moduli sopra considerati di tipo passivo: KY-006 e Ks0019, come mostrato nello schema.
Materiale necessario
Arduino UNO | Jumpers Dupont colorati |
Modulo Buzzer passivo KY-006 | Modulo Buzzer passivo Codice Ks0019 |
Schema dei collegamenti
Sotto lo schema utilizzando la scheda Keyestudio PLUS. È compatibile con l’ambiente di sviluppo Arduino IDE. Contiene tutte le funzioni della scheda Arduino UNO R3 e alcuni miglioramenti che ne rafforzano notevolmente la funzione. Questa scheda dispone di uno specifico connettore a cui collegare dispositivi I2C. Vedere articolo Scheda Keyestudio PLUS KS0486
Sketch utilizzato
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | int buzzer=3;//imposta il pin IO digitale del BUZZER void setup() { //imposta il pin IO digitale come OUTPUT pinMode(buzzer,OUTPUT);// } void loop() { unsigned char i,j;//definisce una variabile while(1) { for(i=0;i<80;i++)//emettere un suono di frequenza { digitalWrite(buzzer,HIGH);// Suono delay(1);//pausa di 1ms digitalWrite(buzzer,LOW);//silenzio delay(1);//paisa di 1ms } for(i=0;i<100;i++)// output a frequency sound { digitalWrite(buzzer,HIGH);// suono digitalWrite(buzzer,LOW);//silenzio delay(2);//pausa di 2ms } } } |
Usiamo il comando tone() e noTone()
Un altro modo per far emettere un suono tramite un buzzer è utilizzare il comando tone(), il comando genera un’onda quadra della frequenza specificata (con un duty cycle del 50%) in uscita su un pin.
È possibile specificare anche una durata, altrimenti l’onda continua fino a una chiamata al comando noTone().
Può essere generato solo un tono alla volta. Se un suono è già emesso su un pin diverso, la chiamata a tone() non avrà alcun effetto.
Se il suono è emesso sullo stesso pin si potrà modificare la frequenza.
Per arrestare la generazione dell’onda quadra attivata da tone() si deve utilizzare il comando noTone().
Il comando non ha effetto se non viene generato alcun tono.
Sintassi comando tone()
- tone(pin, frequenza)
- tone(pin, frequenza, durata)
Parametri:
pin: il pin su cui generare il tono
frequenza: la frequenza del tono in hertz
durata: la durata del tono in millisecondi (opzionale)
Sintassi comando noTone()
- noTone(pin)
Parametri:
pin: il pin sul quale arrestare l’emissione del tono
Listato del programma
Il seguente sketch di Arduino rileva la pressione del pulsante e accende il led presente sulla scheda.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #define buzzerPin 3 //Pin collegamento buzzer void setup() { pinMode(buzzerPin, OUTPUT); } void loop() { tone(buzzerPin, 500); //suona una nota alla frequenza di 500 Hz delay (1000); // Attende 1 secondo tone(buzzerPin, 1000); //suona una nota alla frequenza di 1000 Hz delay (1000); // Attende 1 secondo noTone(buzzerPin); //Arresta l'emissione della nota delay(5000); // Attende 5 second1 } |
Test base del modulo buzzer attivo (KY-012 e Ks0018)
Test base per la prova di funzionamento del modulo. Prevede l’utilizzo di un Arduino UNO collegato ad uno dei moduli sopra considerati di tipo attivo: KY-012 e Ks0018, come mostrato nello schema.
Materiale necessario
Arduino UNO | Jumpers Dupont colorati |
Modulo Buzzer attivo KY-012 | Modulo Buzzer attivo Codice Ks0018 |
Schema dei collegamenti
Test con Multi Test Shield
Il test dei moduli buzzer attivi e passivi può essere realizzato anche utilizzando il Multi Test Shield. Si tratta di uno shield auto costruito e realizzato per testare la serie di sensori contenuti nella confezione “37 in 1 Sensor Module Board Set” compatibile con la scheda Arduino UNO R3 originale e relativi cloni.
Sulla scheda sono disponibili molti connettori che risultano già opportunamente collegati con le porte digitali o analogiche di Arduino.
In realtà, la scheda, oltre ai sensori presenti nel kit “37 in 1 Sensor Module Board Set” permette di testare altri sensori, servo, ecc. per un totale di oltre 50 tipi, la presenza di un connettore bus I2C espande ulteriormente la tipologia di dispositivi che lo shield permette.
Sulla scheda è anche presente un connettore per il collegamento di un piccolo Display OLED da 0.95″risoluzione 96×64 pixel, 65536 Colori, su di esso potranno essere mostrati dei messaggio o i valori misurati dai sensori.
Per maggiori informazioni sul Multi Test Shield vedere l’articolo Multi test shield per Arduino – Progetto completo
Componenti utilizzati
Scheda Arduino UNO o equivalente | Multi test Shield |
KY-012 Active buzzer module | Display OLED da 0.95″risoluzione 96×64 pixel, 65536 Colori (optional) |
Posizionamento del modulo sullo Shield
Per l’utilizzo occorrerà semplicemente posizionare il modulo sul connettore JP2 come indicato nella foto
Sketch di prova con Multi test shield
Sketch di prova del modulo tramite il Multi test shield. Il programma fa emettere ciclicamente il segnale al buzzer per un tempo di tre secondi seguito da una pausa di 2 secondi, mostrando sul display OLED le varie fasi del programma.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #include <Adafruit_GFX.h> #include <Adafruit_SSD1331.h> #include <SPI.h> // Definizione dei pin di collegamento #define sclk 13 #define mosi 11 #define cs 10 #define rst 9 #define dc 8 #define Buzzer_pin 4 // Pin di collegamento del buzzer // Definizione dei colori #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst); void setup() { Serial.begin(9600); display.begin(); pinMode (Buzzer_pin, OUTPUT); // Inizializzazione pin di uscita per il buzzer // Messaggio iniziale display.fillScreen(BLACK); display.setTextSize(1); display.setTextColor(BLUE); display.setRotation(2); //Ruota display display.setCursor(0, 0); display.println("www.adrirobot.it"); display.println(""); display.setTextColor(GREEN); display.println("Multitest shield"); display.println(""); display.println(" TEST FOR "); display.println(" 37 IN 1 SENSOR "); delay(2000); display.fillScreen(BLACK); display.setTextColor(YELLOW); display.setCursor(0, 0); display.println(" TEST MODUL0 "); display.println(""); display.println("KY-012 Buzzer"); display.println(""); display.setTextColor(CYAN); display.print("Esecuzione Test"); delay (200); } void loop() { display.fillRect(0, 45, 96, 15, BLACK); display.setCursor(0, 45); display.setTextColor(RED); display.print("Emissione suono"); digitalWrite (Buzzer_pin, HIGH); // Il cicalino viene acceso delay (4000); // Attesa per 4 secondi display.fillRect(0, 45, 96, 15, BLACK); display.setCursor(0, 45); display.setTextColor(GREEN); display.print("Silenzio"); delay (200); digitalWrite (Buzzer_pin, LOW); // Il cicalino viene spento delay (2000); // Attesa per altri 2 secondi in cui il cicalino sarà spento } |
Collegamento con scheda Micro:Bit
I moduli moduli buzzer attivi passivi e in particolare quelli prodotti dalla Keyestudio Ks0018 e Ks0019, possono essere connessi anche alla scheda Scheda Micro: bit.
Per il collegamento utilizzeremo il KY0360 Keyestudio Micro bit Sensor V2 Shield collegandolo alle intestazioni dello shield. Vedremo come implementare un semplice programma per emettere dei suoni
Modulo Ks0018 Buzzer attivo
Componenti necessari
- Scheda Micro:Bit
- Keyestudio Micro bit Sensor V2 Shield
- Cavo USB
- Modulo modulo Ks0018 Buzzer attivo
- 3 Cavi di collegamento Dupont F/F
Codice del test
Per inserisce il codice e salvarlo sulla scheda Micro:bit dovrete accedere direttamente a https://makecode.microbit.org/ .
Di seguito è riportato un codice di esempio che è stato utilizzato per la prova. Potete anche scaricarlo utilizzando questo link.
Modulo Ks0019 Buzzer passivo
Componenti necessari
- Scheda Micro:Bit
- Keyestudio Micro bit Sensor V2 Shield
- Cavo USB
- Modulo modulo Ks0019 Buzzer passivo
- 3 Cavi di collegamento Dupont F/F
Codice del test
Per inserire il codice e salvarlo sulla scheda Micro:bit dovrete accedere direttamente a https://makecode.microbit.org/ .
Di seguito è riportato un codice di esempio che è stato utilizzato per la prova. Potete anche scaricarlo utilizzando questo link.
Alcuni utilizzi del modulo buzzer nei progetti
Buzzer passivo montato sulla scheda di controllo robot Little BOT
Buzzer passivo montato sulla BLE Robot board
Progetto attivazione elettro serratura da tastiera
Buzzer passivo nel progetto di un sistema di allarme con HC-SR501 e Multi Test Shield
Progetto KY-032 Obstacle avoidance sensor module