Home / Arduino / Canzoni natalizie con arduino

Canzoni natalizie con arduino

In questo periodo di feste ho pensato bene di riesumare il mio Arduino, regalatomi da mia moglie per il mio compleanno per fare qualche esperimento con i led, il buzzer e un interruttore.

Ho utilizzato un progetto realizzato da Raj Madhuram e pubblicato su GitHub.

Questo progetto mi ha permesso di ripassarmi l’uso dei led, degli interruttori e dei buzzer.

Attraverso il buzzer farò suonare ad Arduino cinque canzoncine natalizie: Jingle Bells, The First Noel, O Holy Night, We Three Kings e What Child is This. Mentre viene riprodotto l’audio i 5 led che ho messo sulla board si accenderanno a tempo.

Lista dei componenti necessari:

  • R1: 1 resistenza da 10 K Ohm
  • R2 – R6: 5 resistenze da 330 Ohm
  • LED1, LED2, LED3, LED4, LED5: 5 led rossi da 5 mm
  • J1: Un Buzzer
  • S1: Un interrettore

Questo è lo schema del circuito che ho implementato:

Schema circuito canzoni natazione con Arduino

 

Utilizzo dei led

I led sono dei diodi che generano una luce quando viene applicata una tensione ai suoi capi, maggiore è la corrente che vi scorre e maggiore è la luminosità del led, bisogna però stare attenti a non mandargli troppa tensione perché i led non hanno una limitazione di corrente, quindi il led si surriscalderà fino a danneggiarsi.

Per evitare che si danneggi bisogna limitare la corrente che scorre nel led, per fare questo si può utilizzare una resistenza in serie al led. Per calcolare il valore esatto della resistenza da applicare utilizzo la legge di Ohm V=RI dove V è la tensione in volt I è la corrente in ampere e R è resistenza in ohm.

La tensione V sarà data dalla caduta di potenziale sui morsetti del led, quindi tensione di alimentazione – la tensione di giunzione del Led, la tensione di alimentazione sarà 5 V (poiché Arduino funziona internamente a 5 V, a prescindere dalla sua alimentazione) mentre la tensione di giunzione si può leggere nel datasheet del diodo (se non si conosce si può fare una stima prudenziale assumendo una tensione di giunzione di circa 2 V) e varia tra 1.7 V a 3.5 V a seconda del colore del led.

Dobbiamo inoltre sapere la corrente di lavoro del diodo, in genere si considera “sicura” una corrente di lavoro tra i 10 e i 15 mA, massimo 20 mA.

Adesso abbiamo tutti i dati per fare i calcoli.

I = 20 mA

V = 5 – 1.7 = 3.3V

R=V/I = 3.3 / 20 mA = 0.165 kOhm = 165 Ohm.

V = 5 – 3.5 = 1.5 V

R=V/I = 1.5 / 20 mA = 0.075 kOhm = 75 Ohm.

Se non conosciamo la tensione di giunzione del diodo potremo usare la resistenza più grande (165 Ohm) per essere sicuri. Ovviamente non esistono resistenze da 165 Ohm, quindi potremo usarne una da 150 o una da 180 Ohm, di solito conviene sempre usare la resistenza più grande.

Di seguito una semplice tabellina per i più pigri.

Colori dei led e resistenze
Colore Tensione di giunzione 20 mA e 5 V 10 mA e 5 V
Infrarosso 1.5 V 180 Ohm 390 Ohm
Rosso 2.0 V 150 Ohm 330 Ohm
Arancio 2.0 V 150 Ohm 330 Ohm
Giallo 2.1 V 150 Ohm 330 Ohm

Verde Giallo

2.1 V 150 Ohm 330 Ohm

Verde Smeraldo

2.2 V 100 Ohm  180 Ohm

Blu

3.3 V 100 Ohm  180 Ohm

Bianco

3.3 V 100 Ohm  180 Ohm

UV

3.3 V 100 Ohm  180 Ohm

Blu viola (430 nm)

4.6 V 22 Ohm 47 Ohm

Adesso che abbiamo calcolato la resistenza necessaria ai nostri led ci domanderemo quale verso del led va collegato alla resistenza.

I led colorati hanno due piedini uno lungo (anodo) e uno corto (catodo), noi dovremmo collegare il catodo (polo negativo) a massa (GND), mentre l’anodo (polo positivo) al pin di controllo.

Se abbiamo tagliato i piedini e non sappiamo più quale era quello più corto e quello più lungo, si possono anche collegare a caso, perché il led è un diodo, quindi fa passare la corrente solamente in un verso e se viene messo al contrario il led semplicemente non si accende.

Poiché Arduino ha come limite massimo di corrente erogata di circa 150 mA se si vogliono collegare molti led sulle porte di Arduino conviene alimentarli con 10 mA altrimenti per pochi led si possono fornire anche 20 mA.

Inoltre Arduino non può fornire o assorbire più di 40 mA su qualsiasi porta digitale.

Nel mio progetto ho utilizzato 5 led rossi:

I = 10 mA

V = 5 – 2 = 3 V

R=V/I = 3 / 10 mA = 300 Ohm

Perciò ho usato 5 resistenze da 330 Ohm.

Altoparlanti, trasduttore piezoelettrico o buzzer magnetico

I dispositivi che trasformano un segnale elettrico in un’onda acustica si chiamano trasduttori acustici.

Gli altoparlanti sono quelli più famosi ma ve ne sono anche altri molto utilizzati, l’allarme della sveglia o dell’orologio, il suono del forno a microonde sono solo due esempi di trasduttori  piezoelettrici.

Arduino non ha uscite analogiche, per cui può pilotare solamente con un segnale digitale compreso tra 0 e 5 V.

Altoparlanti

Un altoparlante ha una resistenza che può variare tra i 4 e i 32 Ohm, supponiamo che abbia una resistenza di circa 8 Ohm, la corrente assorbita (sempre per la legge di Ohm V =RI) sarà di I = V/R

I= 5/8 = 0.625 A = 625 mA

decisamente troppo per le porte di Arduino, che ricordiamolo ancora una volta possono ricevere o erogare al massimo 40 mA.

E allora come possiamo utilizzare questi altoparlanti? Semplice, mettiamo in serie una resistenza adeguata che abbassi la corrente. In questo modo la R totale sarà data dalla Resistenza in serie + 8 Ohm (Resistenza dell’altoparlante).

I = V/R = 40 mA = 5/(R totale) => R totale = 5/ 40 mA  = 125 Ohm.

La resistenza da aggiungere deve essere di 125 – 8 = 117 Ohm (che non esistono per cui ne useremo una da 120 Ohm.

In questo modo la corrente che arriverà sul pin di Arduino sarà di I = 5/128 = 0.039 A = 39 mA.

Utilizzando questa strategia, non avremmo problemi con Arduino, ma il volume dell’altoparlante sarà bassino.

Trasduttori piezoelettrici

La resistenza di un trasduttore piezoelettrico è di circa un migliaio di Ohm alla frequenza di risonanza, ottimi per il nostro Arduino che avendo una alimentazione di 5 V, avrà un assorbimento di corrente pari a 5 mA.

Neanche con i trasduttori avremo volumi elevati perché per lavorare al meglio necessitano di 10 o 12 V.

Buzzer magnetici

I buzzer sono progettati per dare il meglio con tensioni tra i 4.5 e i 5.5 V e hanno un assorbimento massimo di corrente di 50 mA. Sembrano perfetti per il mondo di Arduino.

Il buzzer ha due piedini, il polo negativo va collegato a massa (GND) e il polo positivo al pin D8 di Arduino.

Interruttore

Infine spiego l’ultima parte del circuito, quella riguardante l’interruttore.

Qui ho collegato un piedino ai 5 V dell’alimentazione  e uno al pin2 di Arduino, inoltre ho collegato il pin2 a massa tramite una resistenza di pull-up. Questo perché altrimenti quando il contatto dell’interruttore rimane aperto, l‘ingresso sul pin2 rimane “flottante” e percepirebbe dei segnali casuali (disturbi elettromagnetici esterni, correnti statiche) che potrebbero far alzare il livello della tensione e Arduino potrebbe interpretarlo come se venisse premuto il pulsante.

La resistenza di pull-up o pull-down serve a mantenere l’ingresso di Arduino ad uno stato logico ben preciso quando il pulsante si trova col contatto aperto, infatti quando il contatto è aperto, il pin2 si dirige verso massa attraverso una resistenza (che di solito si usa da 10 kOhm),  si utilizza una resistenza e non si connette il pin2 direttamente verso massa poiché quando il contatto viene chiuso si avrebbe un corto-circuito.

Software

Per farlo funzionale ho utilizzano lo sketch e la libreria presa dal Raj Madhuram, prossimamente provvederò a commentarlo. Per adesso e tutto!

About Fabrizio

Ciao, sono un freelance: svilupppo siti web ed applicazioni per cellulari Android, faccio assistenza negli studi legali di Catania e provincia attraverso l’installazione del redattore degli atti Slpct, la configurazione della pec e della firma elettronica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *