Tips & Tricks - PIC

 


Comandare carichi


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 Vdi 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, BDX53TIP3055 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.



 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 31/08/12 .