Come comandare un carico da un pin
del microcontroller
Molti componenti come i relè, elettrovalvole, solenoidi, LED ad alta potenza,
lampadine, motori, attuatori vari richiedono più corrente rispetto a quanto
fornibile dalle uscite del microcontroller oppure funzionano a tensioni
superiori a quelle di alimentazione.
Un port del microcontroller, configurato come uscita digitale, può fornire
una corrente massima attorno a 25mA alla tensione pari a quella di
alimentazione.
Con queste caratteristiche si possono comandare direttamente LED, piccoli
relè, opto isolatori e piccoli carichi. Però un relè in grado di
commutare carichi in rete tipicamente richiede una tensione sulla bobina di
12V o più, con una corrente dai 40 mA in su; ugualmente un piccolo motore
richiederà correnti dell' ordine delle centinaia di milliampere e LED per
illuminazione possono assorbire vari ampere.
Per questi carichi, il comando diretto dal port del microcontroller è
impossibile; occorre inserire un qualcosa in grado di "amplificare"
la capacità in corrente e tensione.
La soluzione più semplice consiste nell' utilizzare un
transistor come buffer intermedio
tra il pin del microcontroller e il carico.
Interruttore low side.
La forma più comune è costituita da un transistor NPN in
configurazione open collector.
In generale, il transistor ha funzione di amplificatore di corrente: una piccola corrente
iniettata nella base produrrà, moltiplicata per il guadagno (hFE o
beta), una corrente di collettore di valore maggiore. Nella nostra
applicazione, non è richiesta una funzione di amplificatore lineare, come lo
sarebbe in un amplificatore audio, ma bensì un comportamento di commutazione:
vogliamo ottenere due stati distinti, on e off, propriamente detti saturazione
e interdizione.
Applicando una adeguata tensione alla base, possiamo portare il transistor
in saturazione, ovvero nello stato di conduzione in cui la caduta di tensione
nella giunzione C-E è la minima: la massima corrente possibile scorrerà
nella giunzione C-E.
Per contro, portando a 0V la base, portiamo in blocco il transistor (interdizione),
annullando la corrente di collettore.
|
L'applicazione tipica è quella a lato.
Il transistor Q1, NPN, è collegato con l' emettitore
alla massa comune.
Il carico Rc è collegato al collettore ed è
alimentato da una tensione Vcc che può essere diversa da quella che
alimenta il microcontroller.
La resistenza R1, obbligatoria, serve a limitare la
corrente che dal port del microcontroller va verso la base di Q1.
Se il guadagno hFE del transistor è pari a 100, una
corrente di base Ib di 1mA potrà controllare
una corrente di collettore Ic:
Ic = Ib * hFE = 0,001 * 100 =
100mA
Quindi il carico potrà assorbire questa corrente, 4 volte oltre la
massima gestibile direttamente dal port di un PIC (25mA). |
In questo schema, il carico si trova collegato tra il
collettore del transistor e la tensione di alimentazione positiva. Il particolare chiave
è che
la tensione di
alimentazione del carico, Vcc, può essere diversa
dalla tensione di alimentazione del microcontroller Vdd.
Infatti il circuito che comprende la giunzione B-E
dipende dall' alimentazione fornita dal port del microcontroller: la
corrente di base è alimentato dalla Vdd attraverso il
driver del pin di uscita del microcontroller, la R1 e la giunzione
base-emettitore, chiudendosi sulla massa comune.
Il circuito della corrente al
carico, che passa attraverso la giunzione collettore-emettitore, è alimentato dalla Vcc. I due circuiti sono virtualmente indipendenti
e solo una tensione tale da rompere la giunzione base-collettore li mette in
contatto.
In questo modo, con un
microcontroller alimentato , da esempio, a 3V, sarà possibile
comandare un carico a 12V o 48 V o più. Il limite della Vcc
teoricamente dipende dalle caratteristiche del transistor.
Specifichiamo che la tensione al carico, per l' open
collector, può
essere "diversa" da quella di alimentazione del microcontroller, maggiore o
minore, ma può anche essere la stessa, assolvendo alle seguenti funzioni:
Vcc = Vdd |
l' open collector, offrendo una amplificazione di
corrente, consente al pin del microcontroller di comandare
un carico alla stessa tensione, ma con corrente maggiore di quella
fornibile direttamente dal pin |
Vcc > Vdd |
il pin del microcontroller può comandare un carico con
tensione e corrente maggiori di quelle supportabili direttamente |
Vcc < Vdd |
è possibile comandare un circuito con tensione minore
di quella del microcontroller e realizzare così un convertitore di
livello, ad esempio da 5 a 3V. |
In tutti i casi, però, il circuito del microcontroller e quello del
carico non sono isolati galvanicamente, avendo la massa in
comune. Se
è necessario questo genere di isolamento, si dovrà provvedere con un
circuito adeguato. |
In pratica, il transistor , in sostanza, agisce come un
interruttore, azionato dalla corrente di base. Avendo il riferimento alla massa, in inglese questa soluzione si
definisce "low side switch".
|
Dal punto di vista del carico, si tratta di una
logica "positiva":
port |
Q1 |
carico |
L |
off |
non alimentato |
H |
on |
alimentato |
Dal punto di vista del transistor, però, si tratta di una logica
invertente:
port |
Q1 |
tensione
al collettore di Q1 |
L |
off |
H |
H |
on |
L |
|
Un interruttore imperfetto
Occorre tenere presente che:
un transistor non è un interruttore
ideale, dato che, anche in saturazione (interruttore chiuso), ci sarà una caduta di tensione Vce(sat)
tra il collettore e l'emettitore. Da questa, moltiplicata per
la corrente che passa nella giunzione, deriverà una perdita di
potenza in calore.
Nella situazione di interdizione (interruttore aperto)
ci sarà comunque un piccola corrente di perdita (che però
solitamente si ritiene del tutto trascurabile). |
Il valore della Vce(sat) dipende dalle caratteristiche del semiconduttore e cambia in
funzione della corrente di collettore (ed, ovviamente, di quella iniettata
nella base). Alla saturazione:
-
la caduta di tensione C-E è la
minima possibile e
-
si avrà la minima perdita di potenza per effetto Joule
sulla giunzione, in funzione della corrente di collettore Ic
che la attraversa:
Pd = Vce(sat) * Ic
In saturazione, qualsiasi aumento nella corrente di base
non avrà alcun effetto sulla corrente di collettore, in quanto la tensione
C-E non può scendere sotto il valore della Vce(sat). Se
ci si allontana da questa condizione, iniettando nella base una corrente
minore di quella necessaria, il transistor si comporta come una resistenza
variabile, il cui valore darà origine ad una caduta di tensione Vce
> Vce(sat) e quindi ad un riscaldamento
maggiore, situazione da evitare sia per lo spreco di energia, sia perchè, se
il calore non viene smaltito, può distruggere rapidamente il semiconduttore.
Nel caso in cui la corrente di collettore sia molto elevata,
per mantenere la corrente di base a basi valori, sarà
utile impiegare un transistor darlington, che ha solitamente un guadagno molto
alto (500-1000 e più): in queste condizioni sarà necessaria una minima corrente di
base, con due vantaggi:
-
risparmio energetico, particolarmente sensibile nei
sistemi alimentati a batteria
-
un minimo stress dei driver dei port del microcontroller
Lo svantaggio è che la tensione di saturazione dei
darlington è elevata (2-4V o più),
con una corrispondente maggiore dissipazione termica.
La tensione di saturazione varia tra 0,3 V e 1V o più;
tipicamente è minore nei semiconduttori al germanio che in quelli al silicio.
In molte applicazioni la Vce(sat) può essere
ignorata, ma si deve tenere presente che essa genera la perdita di energia Pd
sotto forma di calore. Quindi, per valori di corrente elevati,
si può
rendere necessaria l' applicazione di un sistema di raffreddamento del
semiconduttore.
Il valore ottimale della Vce(sat)
si ottiene con una adeguata corrente di base e la scelta della R1,
che limita questa corrente, dipende dal guadagno del transistor in
relazione alla corrente del carico. Così, per comandare 1A con il
transistore dell' esempio iniziale, occorre una corrente di base di 10mA.
Ovviamente la corrente massima alla base non potrà superare quella erogabile
dal pin del microcontroller; quindi, per un PIC con corrente massima al pin di
25mA, non sarebbe possibile utilizzare un transistor con hFE=100 per comandare
un carico da 3A, in quanto sarebbero richiesti 30mA alla base. Per
risolvere la cosa, basterà semplicemente selezionare un transistor con
guadagno maggiore, ad esempio 200, il che originerebbe una corrente di base di
15 mA.
La conseguenza principale della Vce(sat)
è una inevitabile generazione di calore, ma se la corrente nella base non è sufficiente a raggiungere la
saturazione, la tensione Vce risulta maggiore
di quella di saturazione e, contemporaneamente, aumenta la dissipazione di
energia in calore; questa condizione, se utile quando il transistor lavora nell' area
lineare, come amplificatore, va evitata quando lo si usa come interruttore.
|
In ogni caso, anche per la tensione di saturazione, quando il
prodotto della corrente di collettore per la caduta di tensione supera
un certo limite, si richiede obbligatoriamente un
dissipatore di calore. Questo complica la realizzazione pratica, ne aumenta il volume e il costo.
tanto maggiore sarà il calore prodotto, tanto più impegnativo sarà
il sistema di raffreddamento.
Nell' immagine a lato, transistor in TO-220 con radiatori di Fischer. |
E va sempre ricordato che, collegando un dissipatore al
semiconduttore, si potrà passare il calore prodotto all' ambiente, tenendo
ragionevolmente bassa la temperatura della giunzione, ma si dovrà poi
smaltire fuori dall' apparecchiatura questo calore, altrimenti si otterrà un
peggioramento e non un miglioramento delle condizioni di lavoro.
Quindi, per quanto possibile, è molto meglio se la produzione di calore vie
evitata o ridotta.
Una soluzione, dove possibile, è quella di scegliere transistor con una bassa
Vce(sat) e, in ogni caso, rimanere in un ambito di
correnti di collettore tali da non superare la potenza dissipabile da quel
particolare tipo di package del transistor.
Alcuni esempi pratici di calcolo dei circuiti.
Primo esempio.
Supponiamo di dover comandare un carico che assorbe 150mA ed
è alimentato a 12V.
Esso non può essere comandato direttamente da un pin del microcontroller, sia
a causa della corrente elevata, sia per la tensione superiore alla Vdd.
Interponiamo allora un transistore NPN; va bene un elemento comune per uso
generale, come ad esempio 2N2222, PN2222 o anche 2N3904, BC337 e simili. Sarà
necessario verificare il foglio dati del componente per rilevare se la massima
corrente di collettore e la massima tensione Vce sono adeguate all'
applicazione, oltre che per rilevare il guadagno.
|
Ad esempio, per il PN2222A il foglio dati indica:
-
una corrente di collettore di 1A, il che lascia un buon
margine rispetto a quella richiesta
-
una tensione Vce di 40V, quindi adeguate all'
applicazione, con un ampio margine di sicurezza.
-
Il guadagno tipico a 150 mA è garantito almeno a
100.
-
Potenza massima dissipabile 600mW
-
Vce(sat) di 0.3V con corrente di collettore di 150mA
|
Occorre ora assicurare una corrente di base tale da mandare il
transistor in saturazione. Con un guadagno di 100, per una corrente di
collettore 150 mA occorre una corrente di base di almeno :
Ib = Ic / hFE = 150 / 100 = 1,5 mA
E' possibile che i fogli dati forniscano dei valori minimi e
massimi per il guadagno del transistor e il range sia molto ampio; ad esempio,
per il PN2222A, si va genericamente, senza prendere riferimenti alla corrente
di collettore, da 35 a 300.
Nei casi in cui si abbiano dati di questo genere, esistono due vie di
approccio:
-
la prima consiste nel provare il guadagno dell' elemento
che si sta usando e utilizzare quel valore.
Questo però si adatta solamente a quel singolo caso; se si dovesse
ripetere più volte il circuito, sarebbe necessario ogni volta la verifica
del guadagno e il calcolo di una resistenza appropriata.
-
la seconda via consiste nell' utilizzare il valore minore
della gamma. Questa scelta assicura una corrente di base sufficiente per
qualsiasi beta assuma il transistor usato, anche se, nei modelli con il
guadagno più alto, darà origine a correnti di base più alte del
necessario
Per un circuito ripetitivo, la scelta, ovviamente, cade sulla seconda opzione: se
utilizziamo un guadagno minimo di 35, abbiamo una corrente di base di
4.3mA,
sempre comunque molto all' interno dei limiti di corrente fornibili dal pin
del microcontroller. E questa corrente non creerà alcun danno al transistor,
che può sostenere correnti di base di 50mA e oltre.
La tensione massima VOH fornita dal
pin del microcontroller è, al minimo, Vdd-0.7V. Alla corrente
si oppone la tensione base-emettitore Vbe , che
possiamo considerare pari a 0.7V
Se Vdd = 5V, sarà semplice calcolare R1
come:
R1 = (VOH - Vbe) /
Ib = (4.3 - 0.7) / 0.0043 = 837ohm
e potremo usare una resistenza compresa tra 820 e 860 ohm. E'
probabile che il calcolo effettuato sia molto conservativo, in quanto il
guadagno tipico del transistor è, statisticamente, superiore al minimo.
Mediamente hFE di una partita di PN2222A è 100 o più; per cui anche
2400 ohm potrebbero essere più che adeguati ad ottenere la saturazione.
In
ogni caso, i perfezionisti, realizzato il circuito, potranno misurare la
tensione tra collettore ed emettitore con un tester ed eventualmente variare la
R1 per ottenere la minore tensione tra collettore ed emettitore.
Il circuito definitivo può comprende un ulteriore componente,
R2.
|
Questa seconda resistenza non è strettamente necessaria, ma può
essere utile aggiungerla perchè si deve ricordare che al reset i pin
del microcontroller sono tipicamente i pin sono configurati come
ingressi e presentano un' alta impedenza, ovvero si comportano come
resistenze di valore molto elevato collegate alla Vdd, fino a quando
il programma ne prende il controllo, assegnando le funzioni di uscita
ed il relativo livello logico.
In queste condizioni è possibile che la corrente di perdita sia
sufficiente ad azionare parzialmente un transistor molto sensibile, col risultato
di avere il carico malamente alimentato per il breve tempo necessario
al microcontroller per prendere il comando dei port. ll pull down
sarà necessario in quei casi in cui al reset, sul pin che risulta
configurato come input , sarà attiva per default anche la resistenza
di weak pull-up; questa è in grado di portare in conduzione, anche
parziale, un transistor con un guadagno inferiore a 500 e in piena
conduzione uno con guadagno superiore.
|
In genere questo non è un problema per la maggior parte delle
applicazioni; ad esempio, probabilmente che un LED si accenda
parzialmente per qualche millesimo di secondo all' accensione, non ha
alcuna importanza. In effetti, con transistor NPN in questa
configurazione, la resistenza della base è piuttosto bassa e sono
necessari mediamente 0.6 V per attivarlo; un resistore di pull-down non è
critico, e in molti casi non è nemmeno indispensabile. Però, in alcuni casi di carichi particolari, come relè,
solenoidi, motori, ecc, può non essere desiderabile neppure questo
brevissimo impulso di conduzione. Allora è il caso di inserire la R2.
Il suo scopo è quello di mantenere la base del transistor a
massa in mancanza di segnale di comando. Il suo valore potrà essere circa 10
volte la R1. Pur costituendo un partitore con R1, se il valore di
R2 è
abbastanza alto, può essere ignorata nel calcolo della corrente di base, a
cui sottrae una percentuale molto piccola. R2 protegge anche la Vbe da sovratensioni e
dà stabilità in caso di variazioni di temperatura
Per quanto riguarda la potenza dissipata dal transistor:
Pd = Vce(sat) * Ic =
0.3 * 0.15 = 0.045W
che è un valore molto limitato, tale da non richiedere alcun
sistema di raffreddamento, anche per un piccolo componente in TO-92.
Più corrente alla base ?
Ogni aumento della corrente di base
oltre quella necessaria alla saturazione, non porta alcun vantaggio nella
riduzione della Vce(sat) . Va considerato, comunque,
che è necessario mantenere un certo margine di sicurezza, dato che i
parametri del transistor si spostano sia con la temperatura che con la
corrente di collettore. Sull' argomento non si trova molto nella divulgazione
"popolare" in rete, ma vale la pena di conoscere qualcosa in più.
Ad esempio, si legge l' informazione che, calcolata una corrente di base per
una data corrente di collettore, in base al guadagno, questa è adeguata a
mandare in saturazione il transistor anche per tutte le correnti minori. Il
che può non essere proprio così vero.
|
Questo diagramma che mette in rapporto la corrente al collettore
Ic con il guadagno hFE viene presentato dal
foglio dati del BC547.
Si può osservare che fino a circa 50 mA il guadagno è
praticamente costante, mentre si riduce per correnti superiori (BC547
ha un limite di 100mA).
Questi vuol dire che, calcolata la resistenza di base per 5omA,
questa sarà adeguata per correnti da 0 a 50mA. Per correnti superiori
R1 dovrà essere ridotta. |
|
A lato, lo stesso digramma per il 2N2222.
La curva del guadagno è decrescente: più sale la corrente di
collettore richiesta, più basso è il guadagno, quindi maggiore sarà
la corrente di base richiesta per la saturazione.
Trattandosi di un transistor che ha un limite di Ic pari a 1A e
quindi potrebbe essere usato in applicazioni dove deve dissipare una
certa potenza, il diagramma riporta varie curve in funzione della
temperatura della giunzione. |
Osserviamo che il guadagno varia con la temperatura in
maniera anche sensibile, con un andamento che troveremo praticamente
in tutti i dispositivi al silicio, ovvero il guadagno è maggiore con
la temperatura. |
|
Questa è la stessa curva per lo ZTX851.
Il guadagno è abbastanza costante in una fascia centrale tra 50 e
500 mA, mentre si flette leggermente per correnti minori, ma
decisamente per correnti maggiori.
ZTX851 dichiara ben 5A di corrente al collettore, ma vediamo come
il guadagno praticamente si dimezzi a questo valore.
L' andamento della curva è abbastanza tipico di transistor di
media potenza. |
|
Un transistor darlington come BD677 esibisce una curva in cui la
flessione è molto più decisa.
Il guadagno ha un punto massimo tra 1 e 2 ampere, mentre scende
decisamente per correnti superiori o inferiori.
Anche qui vediamo le diverse curve in funzione della temperatura. |
Quindi, quando si suppone che il transistor sia in saturazione e si presume che alcuni dei suoi parametri
siano costanti, si ricorre ad una approssimazione: come abbiamo visto ora. In realtà esistono
delle variazioni, principalmente dipendenti dalla corrente di collettore,
della temperatura e anche delle tensioni. Questa potrebbe essere una ragione per un aumento della corrente di
base: gli stessi componenti potranno essere usati per un range di carico molto
ampio senza preoccupazioni.
Ne risulta che il calcolo della resistenza di base non va fatto al limite o in
difetto, ma piuttosto in eccesso, per far fronte a tutte le possibili
condizioni di lavoro del transistor. Ovviamente senza eccedere,
poichè la corrente di base ha un limite massimo, indicato nel foglio dati,
dal quale occorre tenersi a ragionevole distanza e che, se
eccessiva, provoca un inutile surriscaldamento del circuito B-E e va quindi
evitata. E tenendo presente che anche il pin del microcontroller ha un limite
di corrente e che, in ogni caso, non è molto sensato aggiungere un buffer
all' uscita per poi forzare questa uscita alla sua massima corrente.
La resistenza di base calcolata fornisce una corrente esatta in base ai
parametri inseriti nelle formule; alcuni autori consigliano di aumentare
questa corrente per ragioni di sicurezza, in modo da avere la certezza che il
transistor sia in saturazione. Una volta calcolata la minima corrente di base
necessaria,
solitamente il suo valore è di gran lunga al di sotto della massima corrente
di base nominale per quel transistor e al disotto della corrente erogabile dal
pin del microcontroller.
Si può, allora, aumentare la corrente di base, moltiplicando il valore
calcolato per un fattore da 2 o 4 o anche più.
In questo modo, il transistor interruttore risultante sarà molto più immune
a variazioni delle tensioni, del carico e del suo guadagno.
Si potrà allora calcolare R1
come:
R1 = (VOH - Vbe) / 2 Ib = (4.3 - 0.7) /
0.0086 = 418 ohm
Nel caso in esame, riducendo la R1 a 430 ohm si ha l' assoluta certezza
di mandare in conduzione il transistor in ogni condizione possibile.
La scelta tra un calcolo preciso e un "overcharge" della corrente
di base è libertà del progettista. Il calcolo presentato si basa sulla
scelta del valore minimo di guadagno indicato sul foglio dati del
componente; solitamente, in una partita transistori, difficilmente si avrà un valore così
basso, restando piuttosto vicino al valore tipico che il foglio dati indica, e
che è abbastanza maggiore di quello minimo. Ad esempio, su un certo numero di PN2222A,
il guadagno verificato con un prova transistor non è mai sceso sotto 80,
compresi alcuni pezzi recuperati, il che è più del doppio di quanto
considerato nel calcolo.
Con il calcolo visto, quindi, si dovrebbe già avere imposto un fattore di
correzione sufficiente. Se però si pensa di ripetere il circuito con diversi
tipi di transistor e non si voglia ogni volta ricalcolare la R1
in base al guadagno, si potrà utilizzare un valore più basso, in modo da
poter essere sicuri in ogni caso.
Un appunto va fatto nel caso si impieghino componenti recuperati dallo
smontaggio di schede: durante la dissaldatura, se non si presta attenzione, il
surriscaldamento di un transistor ne può modificare (in peggio) il guadagno e
altre caratteristiche. Se il componente è ancora funzionante, molto
probabilmente non avrà alcun problema in questo semplice circuito on/off, ma
vale la pena verificare se il guadagno è almeno quello usato nel calcolo. Ed
altrettanto se si utilizzano transistor molto diversi da quelli indicati, ad
esempio darlington, che hanno guadagni molto elevati (e quindi richiedono una
più bassa corrente di base) oppure, all' opposto, grossi transistor di
potenza che solitamente hanno guadagni molto bassi e richiedono correnti di
base sostanziose.
Un ulteriore punto da considerare può riguardare le tensioni
alimentazione: solitamente si suppongo stabilizzate, almeno quelle della parte
logica, che è quella che fornisce la corrente di base, che, quindi, sarà
altrettanto stabile. Però si può avere il caso di un sistema a
microcontroller alimentato direttamente da una batteria, la cui tensione
tenderà a scendere durante il funzionamento. Anche questo caso va
considerato.
In questo ultimo caso, però, c'è ragione a minimizzare la corrente di base,
in funzione del risparmio energetico, particolarmente significativo per dispositivi alimentati a
batteria (dato che è necessario mantenere la corrente alla base per tutto il
tempo in cui si vuole il transistor in conduzione), sia relativamente al fatto
che minori sono le correnti, maggiore è l' aspettativa di vita dei componenti.
In tal caso sarà vantaggioso impiegare transistor con guadagno elevato
oppure transistor con range di guadagno ristretto; questa ultima
caratteristica è tipica, ad esempio, dei transistor delle serie europee come
BC547A, BC547B, BC547C, dove suffissi A, B, C indicano proprio le classi di
guadagno. Analoghe selezioni ci sono per le serie 2N, ad esempio con suffisso
letterale o punti di
colore sul package del transistor.
In conclusione, a parte valutare caso per caso con misurazioni, è
opportuno iniettare nella base del transistor una corrente che garantisca con
sicurezza la saturazione. Quindi, nei limiti delle caratteristiche, meglio
abbondare.
Secondo esempio.
Supponiamo di dover comandare un solenoide (relè,
elettrovalvola, motore) o comunque un carico dotato di induttanza (quindi
qualsiasi circuito con avvolgimenti su un nucleo di ferro).
|
Diventa obbligatoria l' aggiunta del diodo D1. Il suo scopo è quello di assorbire il picco di corrente inversa
generata dalla bobina dell'induttore al momento dello spegnimento.
Nell' induttanza, come nel caso di un relè o di un
motore, una grande quantità di energia viene immagazzinata nel campo magnetico
quando l' avvolgimento è attraversato da corrente. Quando la
corrente cessa, sopratutto in modo istantaneo (a 4MHz di clock una
istruzione del microcontroller è eseguita in 1 us), questa energia si
scarica sul circuito e, combinata con l' alta resistenza del
transistor in blocco, si traduce in una tensione elevata, anche molte
centinaia di volt, tale da danneggiare irreparabilmente la giunzione
del transistor stesso e, spesso, anche il pin del microcontroller.
|
Il diodo ha lo scopo di fornire una via a bassa impedenza per
scaricare questa energia.
Per piccoli carichi, come relè da circuito stampato e simili,
il tipo di diodo non è particolarmente legante: vanno bene
rettificatori generici come gli 1N4001/2/7 o anche i classici 1N4148/50. Nel caso carichi maggiori, come
solenoidi o piccoli motori, possono essere usati con vantaggio diodi fast
recovery, come MUR3005PT, BYW92-50, MUR500 e simili. Carichi induttivi particolari, con
elevata potenza, potranno però richiedere circuiti più complessi, anche per
il transistor di comando.
La resistenza di base sarà calcolata come nell' esempio
precedente, in base alla resistenza della bobina. Solenoidi comandabili
direttamente in questo modo, ad esempio relè, hanno resistenze comprese tra
40 e 360 ohm o più.
Sarà sempre necessario valutare la potenza dissipata
nel transistor. Nel caso di comando di relè cablati sul circuito stampato, le
correnti in gioco sono limitate a 100-200 mA o meno, quindi non ci sono rischi
di riscaldamento. Nel caso di relè di dimensioni maggiori o di elettro
valvole sarà indispensabile selezionare il transistore per la
corrente/tensione richieste e valutare la necessità di un dissipatore.
nel caso di motori occorrerà considerare anche la massima corrente che si ha
se il rotore viene sovraccaricato o bloccato.
Una nota sulla resistenza della bobina del
relè
Nella
gamma dei relè con alimentazione a 12V, la resistenza dell' avvolgimento può
variare da pochi ohm a molti kohm. Ovviamente, una bassa resistenza
determinerà un maggiore richiesta di corrente e quindi la necessità di un
transistor adeguato.
Nella gamma dei comuni relè per circuito stampato, si possono avere
resistenze da 35 a 1200 ohm e più ed è evidente che una differenza del 340%
nella corrente assorbita impedisce di realizzare uno schema generale con gli stessi
componenti.
Siccome il relè viene solitamente scelto in base
alle caratteristiche dei contatti, chi osserva senza superficialità i
cataloghi, scopre che di una stessa configurazione di contatti, layout del
circuito stampato e tensione di alimentazione, esistono varie versioni con
diverse resistenze di bobina, sia dello stesso che di altri produttori. E
spesso una ricerca non superficiale porta anche ad un risparmio economico.
|
Ad esempio, del classico relè DPDT per circuito stampato, il
catalogo RS
offre una scelta di bobine da 85 a 576 ohm e più. Quindi, nel caso in cui si debba realizzare apparecchiature in cui
il consumo è un fattore significativo, una scelta oculata dei
componenti, non accontentandosi del primo che capita tra le mani, è
fondamentale. Tenendo anche presente che minori saranno
le correnti, minore sarà anche il costo dei transitor necessari a
pilotarle e delle sezioni di alimentazione richieste. |
Se l' applicazione richiede l' uso di più relè può essere
vantaggioso utilizzare un array
di darlington integrati, che consente una drastica riduzione dei
componenti da montare nel circuito.
Terzo esempio.
Supponiamo di dover comandare una serie di 3 LED ad alta
potenza che assorbe 1A ed hanno una tensione di funzionamento Vf
di 4.6V.
Come Q1 necessita un componente in grado di trattare questa corrente con un
sufficiente margine di sicurezza.
possiamo usare un comune TIP121, un darlington per usi generali, che ha le
seguenti caratteristiche:
-
una corrente di collettore di 5A
-
una tensione Vce di 80V, quindi adeguate all'
applicazione, con un buon margine di sicurezza.
-
Il guadagno tipico è garantito almeno a 1000.
-
Potenza massima dissipabile 65W
-
Vce(sat) di 2V con corrente di collettore di 3A
|
Non essendo un carico induttivo, il diodo in parallelo non è
necessario, ma, nel caso di cablaggio con collegamenti lunghi, è
opportuno metterlo.
La R2 sulla base nello schema precedente non è ritenuta
necessaria, in quanto che il LED vada in conduzione per i pochi
millisecondi necessari al microcontroller per esaurire la fase di POR,
non ha importanza. Però nulla vieta di inserirla.
Importante, invece, la resistenza di limitazione della corrente del
LED, RL.
Ogni LED necessita di 4.6V per accendersi e a questa tensione va
aggiunta la caduta di tensione della giunzione del transistor, per
cui:
Vcc > (Vf * 3) + Vce(sat)
= (4.6 * 3) + 2 = 15.8 V |
Si potrà utilizzare una alimentazione a 18-24V.
Data l' elevato hFE del darlington, la corrente di base
è bassa:
Ib = Ic / hFE = 1000 /
1000 = 1 mA
per cui R1 :
R1 = (VOH - Vbe) / Ib
= (4.3 - 2.5) / 0.001 = 1800ohm
La resistenza sui LED, alimentando la serie con 24V, è pari
a:
RL = (Vcc - (3*Vf )
-Vce(sat)) / Ic = (24
- 13,8 - 2) / 1 = 8.2ohm
e deve dissipare una potenza di:
Pd = RL * Ic = 8.2 *1 = 8.2W
per cui si sceglierà un modello da 8.2ohm - almeno 15W.
Nel darlington, sfortunatamente, la tensione di saturazione è
elevata, per cui
Pd = Vce(sat) * Ic =
2 * 1 = 2W
Con questa potenza dissipata per effetto Joule in calore nella giunzione
del transistor si rende indispensabile un piccolo dissipatore di calore.
Sarà possibile migliorare questo aspetto utilizzando
un MOSFET al posto del darlington BJT.
Attenzione alla Vce(sat)
Nel caso in cui la tensione di alimentazione del carico sia
bassa, potrebbe essere necessario considerare la Vcesat del
transistor-interruttore.
Infatti, se un contatto meccanico, ad esempio un interruttore o un relè, ha
resistenza molto bassa, millesimi di ohm, un transistor, anche se in
saturazione, presenta una caduta di conduzione tra C e d E che può anche
essere significativa.
Non viene considerata in quanto, generalmente, è tale da non
influenzare il circuito.
Ad esempio, un transistor che presenta una caduta di tensione di 0.6V su un
carico di 12V, ne modifica la corrente di una percentuale solitamente
trascurabile. Ad esempio, un relè con bobina nominale da 12V è posto in
azione già con tensioni sull' ordine dei 9V.
Così pure la luminosità di LED alimentato a 5V e con una Vf
= 2V, risentirà in modo solitamente trascurabile della caduta di
tensione sul transistor di comando (in questo caso sarà possibile riportare
la corrente al valore voluto riducendo la resistenza in serie al
LED).
Esistono, però, altre situazioni in cui la caduta di tensione
sul transistor-interruttore deve essere considerata.
Ad esempio, se il carico è costituito da un LED con una tensione Vf = 4
V ed è comandato da un transistor darlington, ad esempio un BD680A,
e ci aspettiamo di poter alimentare il tutto con una batteria da 6V, dovremo
riscontare che la cosa non funziona. Infatti, Vce(sat)
del transistor è, nel caso peggiore, di 2.8V. Quindi non sarà
possibile alimentare il carico con meno di
Vcc = Vf + Vce(sat)
= 4 + 2.8 = 6.8 V
ai quali si dovrà aggiungere una ulteriore tensione per la
caduta sulla resistenza di limitazione in serie al LED. Occorrerà al minimo
una batteria da 7.4V.
Si ricorda che la Vce(sat)
dipende dalla corrente iniettata nella base ed al di sotto di un certo valore,
tipico di quel certo componente e della sua tecnologia costruttiva, non può
scendere; quindi un aumento della corrente di base oltre quella necessaria
alla saturazione, non porta alcuna riduzione della Vce(sat).
Scelta del transistor
Abbiamo visto negli esempi precedenti che occorre una certa considerazione
ai parametri del transistor da utilizzare. Chiariamo quanto possibile con un
esempio.
Supponiamo che si desideri comandare un carico costituito da una lampadina
genere auto, da 12V - 21W. Essa assorbirà 21 / 12 = 1.75A.
Abbiamo nel box dell parti da usare per gli esperimenti i seguenti transistor NPN:
PN2222A, TIP31,
BDX53,
TIP3055
e
TIP122.
Quale usare ?
Per prima cosa recuperiamo i fogli dati e facciamo un confronto tra i
parametri principali:
|
TIP122 |
BDX53 |
TIP3055 |
TIP30 |
PN2222A |
Vce [V] |
100 |
45 |
70 |
40 |
40 |
Ic [A] |
5 (8) |
8 |
15 |
3 (5) |
0.6 |
hFE |
1000 |
750 |
15 |
10 |
40 |
Vce(sat)
[V] |
2 |
2 |
1.1 |
1.2 |
1 |
Per prima cosa dobbiamo verificare che il transistor possa gestire la
tensione e la corrente del carico: tutti i transistor elencati hanno una
tensione ben superire a quella richiesta, ma la corrente massima del PN222A è
del tutto insufficiente.
E, se vogliamo avere un circuito sicuro, escludiamo anche il TIP30, che
sopporta una corrente impulsiva massima di 5A. Infatti è opportuno ricordare
che nel passaggio del filamento da spento ad acceso, la corrente iniziale è
varie volte quella nominale (dato che il filamento freddo esibisce una
resistenza minore che non a caldo).; possiamo dire almeno 4 volte la corrente
nominale, dato che questa corrente finirà per essere limitata dalla
conduzione del transistor. Per sicurezza possiamo fissare il limite dell'
impulso a 7-8 A.
Verifichiamo ora se possiamo fornire una sufficiente corrente di base per
mandare il transistor in saturazione. Questo dipende dal guadagno del
componente.
Possiamo vedere che TIP122 e BDX53 esibiscono un guadagno elevato, dato che
sono darlington, mentre invece gli elementi di potenza TIP3055 e TIP30 hanno
guadagno piuttosto basso, come è tipico di questo genere di transistor.
Per una corrente di collettore di 1.75A, potendo il pin del microcontroller
erogare almeno 20 mA deve essere:
hFE = Ic / Ib = 1.75 / 0.02 = 87.5
il che esclude i due ultimi transistor citati, anche se le loro
caratteristiche di corrente/tensione/potenza sarebbero ottime. Questi
transistor si potranno comunque utilizzare interponendo un altro transistor
(genere PN2222A) per formare un darlington che porti il guadagno al minimo
necessario.
Restano TIP122 e BDX53, che hanno caratteristiche molto simili. La differenza
nel guadagno è poco significativa, dato che entrambi hanno un valore molte
volte superiore a quello necessario.
Considerando un guadagno minimo di 750, abbiamo:
Ib = Ic / hFE = 1.75 / 750 = 2.33 mA
Da cui possiamo calcolare la resistenza di base. Dato che il
margine nelle correnti gestibili dal pin del microcontroller è ampio,
possiamo anche considerare di iniettare nella base una corrente maggiore, ad
esempio doppia. Per una corrente di collettore di 3A, il BDX53 ha una Vbe di
2.5V, per cui:
R1 = (VOH - Vbe) / Ib
= (4.3 - 2.5) / 0.005 = 360ohm
Calcolo analogo per il TIP122.
Si dovrà considerare che la Vce(sat)
di questi darlington è almeno 2V, per cui, con 1.75 A di carico si avrà una
dissipazione di calore pari a:
Pd = Vce(sat) * Ic =
2 * 1.75 = 3.5W
potenza che entrambi possono supportare, ma che rende indispensabile un
sistema di raffreddamento.
Se non è desiderabile una fonte di calore, si dovrà optare per un
transistor MOSFET.
Più carichi ?
Dove ci siano da comandare più carichi, si presenta il problema di
ripetere più volte il circuito di pilotaggio (transistor, resistenze, diodo).
Questo può essere evitato utilizzando un array di
drive integrati in un unico package.
Il costo superiore dell' integrato rispetto ai componenti discreti è
compensato pienamente dal ridotto costo del montaggio di un singolo componente
rispetto a varie decine.
Vedo l' uscita
Solitamente è utile poter disporre di un indicatore visivo del fatto che
l' uscita è stata attivata.
|
La soluzione più semplice è quella di utilizzare un LED in
parallelo al carico.
La resistenza serie sarà calcolata in base alla tensione
disponibile.
Per minimizzare l' effetto del carico dovuto al LED, si fa presente
che esistono LED a bassissima corrente (2 mA o meno), la cui
presenza in parallelo al carico diventa praticamente trascurabile. E
che anche LED da 10-20 mA si possono accendere sufficientemente con
5 mA.
La resistenza in serie al LED si calcola nel solito modo,
considerando la tensione di conduzione del LED, la tensione di
alimentazione e la caduta sulla giunzione del transistor. |
Per cui:
Rled = (Vcc - Vf - Vcesat) / Iled
Nel secondo esempio, con una Vcc = 12 V e un LED con Vf
= 2V e Iled = 5 mA, se la tensione di saturazione del
transistor è 1V:
Rled = (12 - 2 - 1) / 0.005 = 1800 ohm
Nota importante : Per carichi induttivi, il
LED NON sostituisce il diodo di protezione, dato che il primo è
in conduzione, mentre il secondo è invertito, in quanto deve condurre
la corrente generata dalla sovra tensione dovuta cessazione della
corrente nella bobina; e questa tensione ha segno opposto alla
tensione di alimentazione. |
Conclusioni
Possiamo quindi dire che la configurazione vista ha i seguenti
vantaggi:
-
consente di comandare un carico con una corrente maggiore
di quella del port. Questa corrente dipende dal guadagno del transistor:
selezionando un transistor con guadagno adeguato, è virtualmente
possibile controllare correnti molto elevate.
-
consente di comandare un carico con una tensione uguale o
diversa (maggiore o minore) di quella di alimentazione del
microcontroller. Selezionando un transistore con una tensione di
collettore sufficiente, è virtualmente possibile controllare carichi su
tensioni molto elevate.
-
è abbastanza semplice, richiedendo al minimo un
transistor ed una resistenza. I transistor NPN sono i più comuni ed il
loro costo è contenuto. La grande varietà e disponibilità di questi
componenti permetto una ampia scelta al progettista.
Per questa semplicità ed efficacia è una delle più
utilizzate per amplificare le capacità di comando delle uscite dei
microcontroller.
Quanto detto riguarda un comando ON/OFF "statico", ovvero
azionando il transistor come un interruttore acceso/spento su carichi in
corrente continua. Per carichi in corrente alternata le soluzioni
sono del tutto differenti.
Questa configurazione, però, può essere usata anche comandando la base
del transistor ad impulsi, ad esempio in PWM, anche se può rendersi
necessaria una maggiore complessità del circuito a seconda del tipo di
carico.
Attenzione a non esagerare !
Va precisato che quanto
visto non è sempre la migliore soluzione e neppure è sempre
possibile utilizzare questa configurazione per carichi con correnti
grandi, dell' ordine delle decine di ampere e oltre, anche se
virtualmente non ci sono problemi se non la scelta di un transistor
dalle caratteristiche adeguate: questo genere di applicazioni riserva
notevoli problematiche, anche solo per lo smaltimento del calore.
Quindi il comando di grossi motori, grandi elettrovalvole,
teleruttori di potenza, celle elettrochimiche, riscaldatori
industriali e simili richiede circuiti ben più complessi di un
semplice transistor + resistenza e non è comunque alla portata di un
dilettante, richiedendo specifiche conoscenze sia teoriche che
pratiche.
Ugualmente, se la tensione del carico è molto elevata, non è
consigliabile utilizzare direttamente un comando dal pin del
microcontroller: la massa comune può essere un rischio in
applicazioni con carichi alimentati a tensione di rete o comunque
superiori a 50V, sia per l' utente che per il microcontroller.
Meglio sarà implementare un qualche genere di isolamento, ad esempio
attraverso opto isolatori, il che salvaguarda sia l' apparecchiatura
che l' utente.
Si ricorda che le normative reputano pericolose per il contatto
tensioni superiori ai 50V e, sicuramente, lavorare con tensioni
elevate oltre il centinaio di volt richiede specifiche conoscenze sia
teoriche che pratiche.
Altrettanto si deve dire per carichi fortemente induttivi, sopratutto
se soggetti a commutazione veloce, come in un comando con PWM. Se le
energie in gioco sono elevate, sono richiesti circuiti ben più
complessi di un semplice transistor + resistenza, probabilmente
con l' uso di altri tipi di semiconduttori (MOSFET, IGBT, ecc). Qui,
il problema dei tempi di commutazione, delle energie accumulate negli
induttori, ecc, diventano fatti critici: un sistema di controllo per
un grosso motore industriale in continua, se non un inverter per
alternata, sono casi ben differenti dal controllo di motori
passo-passo per piccoli CNC hobbistici.
Infine è indispensabile ricordare che il comando di correnti o
tensione elevate solitamente da origine a problemi di tensioni indotte
e sovratensioni importanti, tutti fenomeni che possono influire sul
sistema di controllo se questo non è stato progettato in modo
corretto, implementando implementando le indispensabili misure per
escludere l' effetto del rumore elettrico sul microcontroller
(isolamento galvanico, circuiti di snubber, filtraggio degli ingressi,
ecc.).
|
Quali sono i limiti ragionevoli di una applicazione open collector ?
Se vogliamo agire in sicurezza, non è il caso di superare tensioni di 60V e
correnti di 10A. Chi ha sufficiente esperienza potrà affrontare condizioni
diverse, ma chi pensa che un carico da 50A sia comandabile in PWM con un
semplice open collector, è meglio che ci ripensi. I problemi delle elevate
potenze (sia per corrente che per tensione) sono molteplici, sopratutto se non
si lavora staticamente ON/OFF, ma si applicano modulazione come il PWM, PPM,
ecc.
Ad esempio, questo è un circuito possibile per il comando di un carico da
4A a 300V (1.2kW), che utilizza componenti classici, tratta da una
applicazione SESCOSEM.
Il sistema di accensione del darlington finale, realizzato con due
transistor di potenza T1 e T2, dipende dal T3, mentre lo spegnimento è
gestito dall' SCR Th1. Vari gruppi diodo/induttanza o R/C sono necessari per ottenere
brevi tempi di commutazione.
Come ben si vede, il comando a impulsi di potenze di molte centinaia di watt
non sono cose affrontabili con un semplice open collector, a meno che si voglia
realizzare un bel fuoco d' artificio.
Piuttosto, il problema verrà affrontato, allo stato dell' arte della
tecnica attuale, utilizzando componenti differenti, come
IGBT, ESBT,
MOSFET, ecc.
|