Tips & Tricks - PIC

 


Collegare un altoparlante.


Può essere necessario ottenere suoni dal microcontroller.  Il suono viene generato con una modulazione di impulsi o un DAC e la via più ovvia è quella di collegare un altoparlante attraverso un piccolo amplificatore integrato.
Sono disponibili componenti in DIP a 8 pin, come LM386, TDA7502 e molti altri che possono operare anche a basse tensioni di alimentazione e quindi essere alimentati dalla stessa Vdd del microcontroller, anche in apparecchi alimentati a batterie. L' amplificatore potrà essere preceduto da un filtro per migliorare la qualità dell' uscita.

Dove, però, non sia necessaria questa qualità, ma basti l' emissione di semplici note, ricavate commutando un pin di uscita ad una frequenza determinata, si può desiderare una soluzione più semplice.

Un altoparlante comune sfrutta l'effetto motore di una bobina di filo sospesa in un campo magnetico creato da un magnete permanente: quando una corrente elettrica viene fatta passare attraverso la bobina, essa genera un campo magnetico che interagisce con quello del magnete permanente. 
Se la corrente è variabile, si determinerà un effetto di attrazione/repulsione che farà muovere la bobina. Ad essa è fissato un cono di materiale flessibile (carta, plastica, metallo) e la corrente è variabile, modulata in ampiezza e frequenza, si trasforma in suono.
Questo genere di altoparlante presenta un carico essenzialmente induttivo, con una resistenza ohmica non molto elevata, dato che la bobina dovrà essere piuttosto leggera.

Un comando diretto dal pin del microcontroller è possibile se la resistenza dell' altoparlante è tale da non far circolare più di 25 mA, ovvero non meno di 200 ohm a 5 V.
Questo è adeguato per altoparlanti con alta impedenza, ma si tratta di oggetti non semplici da trovare e comunque non di costo contenuto. L' idea di mettere in serie una resistenza all' altoparlante per ottenere un valore sufficiente si scontra con il fatto che questo riduce drasticamente la potenza sonora che viene emessa.  Se stiamo usando un altoparlante da 8 ohm, occorrerà almeno una resistenza in serie da 172 ohm, il che produce su di essa una caduta di tensione del 95% di quella disponibile, lasciando all' altoparlante un pilotaggio insufficiente per un suono utilizzabile.

Invece, un collegamento diretto può andare bene per cicalini, buzzer , speaker piezo e altri avvisatori miniatura, progettati proprio per questo genere di applicazione e che hanno resistenze elevate.

Per altoparlanti a bassa impedenza serve un buffer.

La prima idea che viene alla mente è questa. Si tratta di un semplice drive low side.

Il che va bene per altoparlanti con bobine da 32/40/50 ohm o più, anche per modelli piezo. In queste condizioni le correnti sono gestibili anche da piccoli transistor in TO-92.

Il calcolo delle resistenze alla base è quello descritto qui.

Però l' impedenza più comune negli altoparlanti è tra 3.2 e 8 ohm; modelli da 8 ohm sono reperibili con estrema facilità e a costi molto bassi oppure possono essere recuperati da vecchie apparecchiature (radio a batteria, personal computer, ecc). 

Con 8 ohm e una tensione di alimentazione di 5V, senza considerare la Vcesat del transistor, si avrebbe una corrente di collettore pari a:

Ic = 5 / 8 = 0.625 mA

che, in un circuito basato su microcontroller embedded, sopratutto se alimentato a batteria, è una enormità e richiede un transistor in grado di erogarla e dissipare la potenza persa in calore sulla giunzione.  Non è da escludere del tutto l' uso di piccoli TO-92 con una corrente massima Ic di 1A (ma, meglio, transistor in package TO-126/TO-220), dato che si tratta di un pilotaggio della base con un segnale impulsivo (un'onda quadra solitamente al 50%); questo consente alla giunzione di cedere calore durante le fasi in cui il pin è a livello 0 quindi di trattare una corrente maggiore di quanto potrebbe fare in continua.

Quando il segnale di pilotaggio è sospeso, si rende però indispensabile che il transistor sia lasciato in condizione di interdizione; nel caso opposto, tutta la corrente, continua, scorrerebbe nella bobina (che non è progettata per questo), riscaldando sia questa che il transistor e, comunque, consumando inutilmente corrente.
Quindi il programma dovrà terminare tassativamente l' emissione del suono con un livello basso sul pin. 

Una possibile soluzione, alimentando con una Vcc maggiore della Vdd e disponendo solo di altoparlanti a bassa impedenza, è quella di inserire una resistenza in serie; il suo valore potrà essere tra 33 e 330 ohm, tenendo presente che maggiore è il valore, minore sarà la corrente, ma anche l' energia sonora dell' altoparlante.

In questa direzione, è possibile inserire anche un trimmer (100-200 ohm) con funzione di regolazione del volume. 

Da tenere presente che nel trimmer passa la corrente determinata dalla serie delle resistenze, per cui occorre un elemento in grado di sostenerla.

Il transistor potrà essere un piccolo darlington genere BC517. 
R1 = 10k e R2 = 47k, R3 = 33-330 ohm
.

Una variazione sul tema precedente è quella di derivare l' altoparlante dal trimmer. Questo consente una migliore regolazione, ma richiede un trimmer non miniaturizzato. 

Il valore di R3 sarà 100-220 ohm.

Si dovrà evitare di portando il cursore completamente verso l' estremo collegato al collettore, in quanto in queste condizioni non ci sarà alcun effetto di limitazione della corrente.

L'uso di un transistor darlington, ad esempio BC517,  riduce la corrente sulla base, così che la R1 potrà essere 10k o più.
Probabilmente più sicuro l' uso di transistor in TO-126, come BD675.

 

E' probabile che, se il rendimento acustico dell' altoparlante è basso, come capita per i modelli economici e quelli con membrana in metallo, il suono prodotto sarà abbastanza debole per alcune applicazioni. In tal caso, piuttosto che aumentare la corrente nella bobina o la Vcc, sarà molto meglio dotare l' altoparlante di qualche forma di cassa acustica, anche solo inserendolo in una piccola scatola di legno o plastica, il che, solitamente, migliora decisamente le prestazioni.
Un problema di cui solitamente non si tiene conto è che la bobina dell' altoparlante è proprio una bobina, quindi un carico essenzialmente induttivo. Un azionamento con un' onda quadra genera sulle commutazioni il solito effetto di sovratensione che si ha commutando un carico induttivo.

Per quanto possano essere poco elevate, queste sovra tensioni possono dimostrarsi pericolose per la giunzione del transistor. Occorre inserire diodi di protezione.

La cosa è più sensibile se, per migliorare l' efficienza,  si utilizzano altoparlanti di grande diametro e/o si alimenta il collettore con una tensione più alta della Vdd, ad esempio 12V o la tensione non stabilizzata prima del regolatore che alimenta il microcontroller.

 

Come in tutti i casi di carichi induttivi, il diodo D1 di protezione è indispensabile. Si tratterà del solito 1N41418/1N4150 oppure 1N400x. Per gli altri componenti:

Q1 = BC517/BD675 e simili
R1 = 10 k, R2 =68 k
D1, D2 = 1N4001
R3 = 33-68 ohm
SP1 = altoparlante 8 ohm, 0.25-0.5W

Dal valore di R3 dipende il volume sonoro, ma non è opportuno scendere sotto i 33 ohm, così come non è opportuno aumentare la tensione Vcc per aumentare il volume.  

Nulla vieta di utilizzare per Q1 un transistor del genere BDX53 con una aletta di raffreddamento per comandare un altoparlante di wattaggio maggiore; se Vcc è 12V o più, è possibile ottenere anche una decina di watt. Però, piuttosto che aumentare brutalmente la corrente nella bobina comandata da un open collector, se si vuole ottenere un suono potente e di qualità ragionevole,  sarà molto meglio dotare l' altoparlante di un amplificatore: esistono vari componenti integrati (TDA200x, TDA2030, LM18xx  e simili) con cui possibile ottenere con semplicità decine di watt in uscita senza problemi di pilotaggio da parte del microcontroller e senza problemi di stress per l' altoparlante, che sarà gestito nel modo più adeguato.

Infatti, in relazione al pilotaggio diretto con un semplice transistor, come finora visto,  va anche considerato come è costruito un altoparlante a cono. La membrana solidale con l' avvolgimento è pensata per essere alimentata in alternata, così che essa possa muoversi, rispetto al punto di riposo, in avanti in una semionda del segnale e indietro nella semionda opposta.
Se alimentiamo la bobina con un' onda quadra riferita alla massa, come quella disponibile sul collettore del transistor, ci troveremmo ad azionare la membrana in una sola direzione, riducendone  l' efficienza.

La schema a lato corregge il problema.

La tensione che alimenta l' altoparlante è derivata dalla resistenza di carico di un emitter follower, attraverso un condensatore elettrolitico, che blocca la componente continua.

L'utilizzo di un condensatore in serie con l'altoparlante, invece di un resistore, con valori tra 47 e 470μF, rimuove la componente continua che arriva con il single-ended ed opera sia sul volume che sul timbro del suono. 

Il condensatore evita anche il pericolo che il port possa essere lasciato alto e quindi mantenere Q1 in conduzione, con una corrente continua attraverso l'altoparlante e il pin di uscita. 

Con questo si può pilotare abbastanza bene diffusori a bassa impedenza senza resistenza aggiuntiva in serie.  Valori per un circuito di prova:

Q1=BC547
C2= 10-470 uF
R2 = 220-470 ohm
R1 =47k , C1=1-47 nF
SP1= altoparlante 8 ohm, 0.25-0.5W

La resa acustica dipende molto dalle caratteristiche dell' altoparlante usato e la scelta  R2 e C2 va fatta per ottenere la migliore prestazione sonora. 

l gruppo R1-C1 sulla base del transistor ha una funzione di filtro passa basso con lo scopo di smorzare i rapidi fronti dell' onda quadra ed ottenere un suono più gradevole e può essere omesso, se non necessario, o sostituito con una rete differente. R1-C1 dipendono dal taglio che si vuole dare all' onda quadra applicata.
Trattandosi di un emettitore comune, la tensione di alimentazione dovrà essere quella della logica di comando.

Con collegamenti come quelli appena visti, la potenza acustica è relativamente bassa. Dove è richiesta una elevata udibilità, non ha particolare senso aumentare la corrente nell' altoparlante o la sua tensione di alimentazione, sopratutto se si cerca di ottenere un suoni di minima qualità.
Ricordiamo di nuovo che, dotando l' altoparlante di qualche forma di cassa acustica, anche solo inserendolo in una piccola scatola di legno o plastica, si migliorano decisamente le prestazioni sonore.


2 pin, 1 altoparlante

Una ulteriore possibilità di comandare piccoli altoparlanti senza l' uso di buffer è quella di impiegare due pin, comandati in opposizione.

L' applicazione è ideale per altoparlanti piezo o comunque con impedenza elevata, mentre su elementi a bassa impedenza e con scarsa efficienza, il volume del suono sarà piuttosto basso.

Un condensatore in serie alla bobina permetterà il passaggio della sola componente alternata.

Portx0 viene mandato a livello alto, mentre Portx1 è a livello basso in una semionda e nella successiva i livelli dei port si scambiano. Questo consente di avere il massimo swing di tensione sulla bobina dell' altoparlante, circa 10 Vpp per una Vdd di 5V. 
E' anche possibile collegare l' altoparlante tra un pin e la massa o la Vdd, con in serie il condensatore, ma lo swing di tensione è la metà.

Il condensatore potrà variare tra 0.47 e 22 uF; il valore migliore dovrà essere verificato con l' altoparlante utilizzato.



 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 04/09/12 .