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. |
|