Il buzzer è un componente presente in tutti gli starter kit di arduino, molti di voi ne avranno almeno uno, quindi perché non farci un progetto?
LINK CODICE https://github.com/ProjectoOfficial/Arduino/blob/master/PERFECT_ED_SHEERAN_BUZZER.ino
Nel tutorial di oggi vi mostreremo come collegare un buzzer ad Arduino, ma non è finita qui, guardate tutto il video per vedere come creare una canzone!
Innanzi tutto un buzzer è un componente elettronico piezoelettrico, che va a convertire l'energia elettrica in energia meccanica facendo vibrare una membrana presente al suo interno.
Esistono due tipologie di buzzer:
- Attivo: per azionarlo basta alimentarlo ad una tensione massima di 5 Volt. Emetterà un suono acuto e continuo finchè la tensione non verrà portata a 0.
- Passivo: per azionarlo si dovrà generare un segnale ad una determinata frequenza e con una durata definita. Questo riprodurrà un suono alla frequenza che andiamo ad impostare e ci permetterà appunto di andare a ricreare note musicali.
Di per sé il componente è dotato di due pin:
- VCC / SGN (input segnale)
- GND
Per il progetto di oggi ci serviranno:
- Arduino uno
- una breadboard
- un condensatore 5V
- un buzzer o speaker
- un potenziometro
Esattamente, si può utilizzare anche uno speaker al posto del buzzer. Anch'esso è un componente piezoelettrico in grado di convertire l'energia elettrica in energia meccanica nella deformazione della propria membrana. Il circuito da realizzare è molto semplice, adatto per chi è alle prime armi. I passaggi sono i seguenti:
- collegare il pin 10 (PWM) al + del condensatore
- collegare il - del condensatore al VCC del potenziometro (pin a sinistra se visto frontalmente)
- collegare il pin a destra del potenziometro a GND
- collegare il pin centrale del potenziometro al + dello speaker
- collegare il - dello speaker a GND
Sfrutteremo il potenziometro per gestire il volume dello speaker, inoltre il condensatore stabilizzerà la tensione del circuito rendendo il nostro segnale molto piu pulito. Riguardo la parte codice, come prima cosa andiamo a definire una macro al pin 10 per il buzzer e una variabile const int songSpeed per poi gestire la velocità di riproduzione della canzone. Successivamente sono definite altre macro con nomi di varie note alle quali viene assegnato un numero.
Questo numero è la relativa frequenza del segnale inviato al buzzer che ci permetterà di riprodurre ognuna nota. Andiamo a creare un vettore int notes[] il quale conterrà le frequenze delle note, in poche parole è metà del nostro spartito. Al suo interno andremo a scrivere il nome della macro relativa alla vera nota che leggiamo sullo spartito di riferimento. L' altra metà del nostro spartito è il vettore int duration [], il quale conterrà la durata di ogni singola nota.
Esempio: alla quinta nota scritta dentro al vettore notes corrisponderà la quinta durata del vettore duration. Inoltre se scriviamo uno 0 nel vettore notes, questo si comporterà come una pausa. Il resto del nostro codice lo scriveremo nel void setup in modo che la canzone venga riprodotta una sola volta. Al suo interno scriveremo innanzi tutto pinMode(buzzer,OUTPUT).
Successivamente contiamo gli elementi dentro al vettore notes che saranno lo stesso numero di quelli del vettore duration, e creiamo sempre nel void setup un ciclo for che va da 0 fino all' n-esima nota meno uno. Al suo interno definiamo una variabile int wait che prenderà duration[i]*songSpeed e andrà appunto a definire la velocità di riproduzione della canzone. Richiamiamo la funzione tone in questo modo: tone(buzzer,notes[i],wait), che sarà la funzione che permetterà ad Arduino di generare un segnale PWM sul pin 10. Infine chiudiamo il ciclo con un delay(wait).
Commenti
Posta un commento