Solitamente un microcontrollore non è in grado di pilotare carichi di potenza. Esso infatti può gestire piccoli dispositivi con assorbimento di corrente pari a pochi milliampere. Se una MCU deve illuminare un diodo Led o pilotare un display LCD, il problema non sussiste. Ma cosa succede invece quando il micro deve comandare l’accensione di un motore o di una lampada di potenza? L’articolo passa in rassegna alcuni metodi di collegamento inerenti le uscite di un microcontrollore.
Collegamento diretto di una sola uscita
Si tratta del collegamento tradizionale e quindi più semplice. Esso prevede la connessione diretta tra una porta d’uscita della MCU e il carico da attivare. Dal momento che, solitamente, ogni porta è capace di erogare pochi milliampere di corrente (circa 25 mA), possono essere collegati solamente piccoli carichi, come diodi Led, canali logici di un display LCD, oppure gli ingressi logici di ulteriori apparecchiature collegate a valle. In questi casi non bisogna mai eccedere la massima corrente sopportata dalla porta stessa poiché, oltre ad ottenere uno scompenso di corrente dell’intero circuito e un riscaldamento anomalo dell’integrato (in tali casi pericoloso), si potrebbe incorrere in un calo di prestazioni dello stesso, con una erogazione “più lenta” verso la porta, per la presenza di “rampe in salita” indesiderate, soprattutto alle alte velocità. Ci si limiti dunque a utilizzare valori di corrente veramente bassi, molto al di sotto della soglia sopportata teorica (Figura 1, 2 e 3).
Collegamento diretto di più uscite
Nel caso in cui è richiesta una più alta aliquota di corrente, e non si vogliono utilizzare soluzioni esterne più complicate, è possibile “farsi aiutare” da uscite supplementari dello stesso micro, al fine di moltiplicare la quantità di corrente erogata. In questo caso è possibile usare il “parallelismo” di più porte, sfruttando la somma algebrica di corrente. In questo caso occorre però seguire le seguenti regole:
- le porte coinvolte devono essere attivate o disattivate nello stesso istante.
Dal punto di vista elettronico, in realtà, esse avranno un momento di attivazione successivo pari al momento di latenza delle singole istruzioni di programma adibite a tale compito, ma ai fini pratici tale ritardo di tempo è da considerarsi ininfluente; anche se il carico applicato riesce ad essere alimentato dalla corrente massima erogata da ogni porta, non bisogna mai superare quella massima erogata dal microcontrollore per la totalità delle porte. Questo specifico caso ci permette di eseguire una prova sul famoso ma vetusto 16F84: come detto prima, la corrente massima di ogni porta ammonta a circa 25 mA. Se il progettista si basasse erroneamente solo su tale parametro, egli potrebbe collegare otto diodi led sulle otto porte, per un assorbimento totale di 8 x 25 mA = 200 mA. Purtroppo l’integrato riesce a sopportare al massimo 150 mA. Occorre dunque considerare anche la massima circolazione consentita sul pin VSS, che è poi quello che dà corrente all’intero circuito logico del micro. Utilizzando questo metodo è possibile illuminare, ad esempio, una piccola lampadina ad incandescenza, con il coinvolgimento dei seguenti valori elettrici, secondo lo schema visualizzato in figura 2:
- lampada funzionante con una tensione di 5 V;
- corrente richiesta dalla stessa di 100 mA (superiore quindi a quella erogabile da un singolo piedino);
- corrente massima erogabile da una singola porta: 25 mA;
- corrente massima teorica erogabile da 8 porte: 8 x 25 mA = 200 mA;
- corrente massima reale erogabile da 8 porte: 150 mA;
- corrente erogata da ogni porta, con il nostro esempio: 100 mA : 8 = 12,5 mA. Come si vede dall’esempio, il sistema è in grado dunque di illuminare una lampada di 100 mA, sfruttando otto porte che erogano solamente 12,5 mA. L’unico svantaggio del metodo è quello di sacrificare tante porte, altrimenti utilizzabili per altri scopi. Si ricorra ad esso quando il numero di uscite della MCU è sufficientemente grande (figura 4, 5 e 6).
Utilizzo del transistor
Quando la corrente richiesta comincia ad aumentare, le porte del micro, da sole, non hanno sufficiente potenza per pilotare i carichi esterni. Ragion per cui è indispensabile richiedere un piccolo aiuto ad altri componenti elettronici. E’ il caso del transistor, di potenza o non, che con la sua elevata corrente di collettore e la sua bassa corrente di base, riesce egregiamente a risolvere il problema. Occorre in questi casi rispettare alcune condizioni:
- la corrente della porta di uscita della MCU deve essere sufficiente a pilotare la base del transistor, e questo è un fatto sicuro, dal momento che, solitamente, la base assorbe pochi microampere di corrente per la maggior parte dei modelli;
- la tensione di alimentazione deve poter erogare una corrente adeguata al carico presente sul collettore;
- la frequenza di taglio del transistor deve rispondere alla frequenza di pilotaggio dettata dal microcontrollore;
- la saturazione del transistor, con conseguente passaggio di corrente, non deve causare un drastico abbassamento della tensione di alimentazione della MCU;
- nel caso di correnti elevate è opportuno dotare il transistor di adeguata aletta di raffreddamento.
L’adozione del metodo richiede, da parte del progettista, un’attenta valutazione soprattutto sul dimensionamento delle resistenze di polarizzazione del componente. L’esempio che segue mostra come un microcontrollore possa pilotare una lampada ad incandescenza che assorba 1 A di corrente e alimentata a 12 V. Ovviamente la corrente è prelevata da un generatore esterno, in quanto il microcontrollore funge solo da “attivatore” del transistor, quindi da elemento intelligente, mentre il massimo carico di lavoro è affidato al noto 2N3055. Per potenze superiori, la base potrebbe richiedere una erogazione di corrente maggiore, rispetto a quella disponibile per ogni porta di uscita. In questi casi è sufficiente utilizzare due o più pin, come abbiamo visto nel precedente esempio (figura 7, 8 e 9).
Utilizzo del Mosfet
Utilizzare un Mosfet per pilotare grossi carichi consente di ottenere molti vantaggi:
- permette di ridurre a zero la dissipazione elettrica e termica, dal momento che la VDS~0 e la Rds<1/10 ohm;
- permette di ottenere una ottima velocità di commutazione, specialmente in applicazioni a PWM;
- permette di utilizzare correnti molto elevate;
- consente un dimensionamento più agevole dei componenti.
L’esempio che segue prevede una erogazione molto alta di corrente. Un microcontrollore riesce infatti a pilotare una lampada ad incandescenza di 12 A con tensione di 12 V, in pratica una potenza assorbita di ben 144 Watt. Grazie alla potenza sopportata dal Mosfet e, soprattutto, al l’assenza di corrente di pilotaggio del Gate (i Mosfet infatti si pilotano in tensione), l’implementazione del circuito è abbastanza semplice. Occorre prestare attenzione al fatto che la corrente, quando supera i 5 A, crea non pochi problemi nella gestione del PCB, per cui bisogna prestare attenzione agli spessori delle piste su circuito stampato e alle sezioni dei cavi utilizzati. Con questo metodo, la porta di uscita del micro non viene assolutamente “stressata”, in quanto basta la sola tensione del livello logico alto per innescare il Mosfet. Non è quindi necessaria alcuna resistenza di base di limitazione.
Utilizzo del Mosfet in parallelo
Quando la corrente si fa veramente alta, si possono usare tanti Mosfet collegati in parallelo. Si moltiplica in questa maniera la correte sopportata da ogni dispositivo, consentendo il passaggio di correnti molto forti. Il piedino di uscita del microcontrollore, anche in questo caso, non viene coinvolto nel passaggio di corrente, e la sua azione avviene solo in tensione. L’esempio che segue prevede un microcontrollore capace di pilotare un carico resistivo che assorbe ben 60 A. Una corrente da far paura. Un utilizzo tipico di questo metodo è quello del motore a chopper, nel quale la corrente allo spunto può superare facilmente i 100 A. Naturalmente lo schema proposto è teorico e di uso generico, ma comunque funzionante (figura 10, 11, 12 e 13).
Utilizzo del Relè
Anche il relè può essere utilizzato proficuamente con un microcontrollore. In questa maniera è anche possibile comandare i carichi a 230 V dal momento che la sua bobina e l’interruttore a scatto sono isolati tra loro. Si possono avere due casi possibili:
- il relè ha una bobina con valore ohmico superiore a 250 ohm e la sua tensione di attivazione è di 5 V. In questo caso è possibile alimentarlo direttamente attraverso la porta di uscita del microcontrollore.
- Il relè ha una bobina con valore ohmico inferiore a 250 ohm e funziona con una tensione maggiore di 5 V. Il suo assorbimento supera pertanto i 20 mA. In questo caso è necessario l’utilizzo di un transistor. In ogni caso è necessario prevedere l’uso di un diodo collegato in anti-parallelo tra i contatti della bobina per prevenire le extratensioni, pericolose per i componenti adiacenti. Per la sua natura meccanica il relé ha un tempo di commutazione estremamente lento.
Utilizzo del Triac
Con l’utilizzo del Triac è possibile comandare i carichi a 230 V. In questa maniera, lampade e carichi resistivi possono essere pilotati attraverso un microcontrollore, senza usare componenti meccanici ma elettronici. Anche qui è necessario rispettare alcune regole:
- la velocità di commutazione del Triac potrebbe essere alquanto bassa;
- il Triac deve sopportare la corrente e la tensione richiesta dal carico;
- la corrente di Gate potrebbe essere elevata, anche superiore a 50 ÷ 100 mA. In questo caso si devono utilizzare contemporaneamente più porte del micro oppure dei buffers per amplificare la corrente d’uscita;
- usando la tensione di rete a 230 V sarebbe opportuno opto-isolare il circuito. L’esempio prevede una lampada a bassa potenza di 200 W ma alimentata a 230 V. Se la corrente di Gate è sufficiente ad innescare il Triac, la conduzione dello stesso è assicurata.
Utilizzo dell’integrato di potenza LMD18245
L’integrato LMD18245 è un amplificatore di potenza a ponte che controlla in corrente i motori DC a spazzole e i motori passo passo a singola fase. Per questo tipo di applicazione ovviamente è richiesta la creazione di un software più complesso per il microcontrollore, al fine di pilotare correttamente le porte adibite alle operazioni.
Utilizzo dell’integrato ULN2001 come rete di Darlington
Con questo metodo viene ridotto drasticamente lo spazio occupato dai componenti elettronici e di conseguenza l’intero prototipo assume dimensioni molto compatte. Si tratta di un array di Darlington funzionante ad alta tensione ed elevata corrente a collettore aperto, contenuti in un unico integrato composto da sette elementi. Ogni elemento è capace di erogare la corrente di 500 mA (con picchi di 600 mA). In aggiunta, anche i 7 diodi di protezione da extratensione sono inclusi nel dispositivo. Questo integrato prevede una disposizione dei suoi pin molto intelligente, infatti le sette uscite sono collocate in posizione opposta ai pin d’ingresso, per permetterne una semplice implementazione su PCB.
Ovviamente l’argomento trattato può essere applicato a qualunque altro dispositivo o scheda di controllo. Anche il nostro ESPertino può seguire le stesse regole, tenendo in mente che le uscite delle porte sono a 3.3V (per i segnali HL) e che, quindi, i calcoli per il dimensionamento dei componenti devono essere adeguati a tale livello di tensione logica.
Per motori a piu alto tasso di corrente vengono utilizzati shield esterni per adattare le varie richieste in termini di potenza.