Il controllo dei motori DC e stepper, anche se apparentemente semplice può risultare particolarmente complesso. Controllare un motore non significa semplicemente attivarlo e disattivarlo ma spesso significa controllare parametri come la velocità, direzione, frenatura. Il controllo richiede per tali ragioni dispositivi o schede dedicate che possiedano sufficiente capacità di calcolo per l'esecuzione di tutte le operazioni necessarie per il controllo stesso. Oltre all'unità di calcolo la scheda deve possedere lo stadio di potenza che collegato al motore permetterà all'unità di calcolo di pilotarlo. In questa Brief Note si discuteranno varie tecniche utilizzate per lo stadio di potenza utilizzati per comandare motori DC, motori Stepper Bipolari e motori stepper unipolari.

Controllo di un motore DC in modalità ON-OFF

Il modo più semplice per comandare un motore DC che debba girare in un solo verso è per mezzo di un transistor BJT o per mezzo di un transistor MOS, come riportato in Figura 1. Tale configurazione rappresenta la stessa che viene utilizzata per comandare carichi induttivi.

Figura 1: Schema base per il controllo di un motore DC in modalità ON-OFF

Figura 1: Schema base per il controllo di un motore DC in modalità ON-OFF

Il diodo di ricircolo viene utilizzato per proteggere la giunzione dei transistor dalle sovratensioni che si vengono a creare nel momento dello spegnimento del transistor stesso, si faccia riferimento alla brief note BN0002-IT per maggiori dettagli sui diodi di ricircolo. Nel caso di motori DC a spazzole, ovvero gran parte dei motori DC presenti nei giocattoli, sono spesso utilizzati 1-3 condensatori al fine di ridurre gli effetti nocivi delle spazzole (ai fini elettromagnetici). Questi risultano spesso saldati tra i terminali di alimentazione e il contenitore del motore. La configurazione appena descritta, se pur semplice, oltre a permettere di attivare e disattivare il transistor, ovvero il motore, permette, se abbinata ad un segnale PWM (Pulse Width Modulation) di controllare la velocità del motore stesso (per maggiori dettagli sul PWM si faccia riferimento al tutorial AN4006-IT). Se non viene fatto uso di alcun encoder per rilevare la posizione del rotore, il controllo della velocità è detto ad anello aperto, mentre nel caso in cui sia presente un encoder e quindi la possibilità di misurare la velocità in uscita (ovvero un feedback) si parla di controllo ad anello chiuso (closed loop).

 

Controllo di Motori Stepper Unipolari

I motori stepper o motori passo passo di tipo unipolari possiedono normalmente 4 avvolgimenti indipendenti (fasi) che possono essere considerati come 4 induttori isolati.

Attivando i singoli induttori in maniera sequenziale è possibile mettere in movimento il motore stepper. A seconda del verso in cui vengono attivati gli induttori, è possibile ottenere una rotazione in verso orario o in verso antiorario. Per quanto detto si capisce che per il controllo di motori stepper unipolari si ha la necessità di una circuiteria simile a quella utilizzata per il controllo di motori DC ON-OFF. La circuiteria deve però essere replicata per quattro in maniera da poter controllare i quattro induttori come riportato in Figura 2.

Figura 2: Schema base per il controllo di un motore Stepper Unipolare

Figura 2: Schema base per il controllo di un motore Stepper Unipolare

Dal momento che i motori stepper, siano essi unipolari o bipolari, non possiedono spazzole, i condensatori per la soppressione dei transitori legati alle scintille che si creano sulle spazzole stesse, non sono necessari, ciononostante radiazioni elettromagnetiche si possono creare a causa delle repentine variazioni di correnti necessarie nella sequenza di rotazione. Controllando in maniera opportuna i vari induttori, ovvero controllando la corrente che circola in ougnuno di essi, piuttosto che utilizzare un semplice stato ON-OFF, è possibile creare dei passi che possono essere una frazionde del passo standard dichiarato sulla scheda tecnica del motore stesso, tale tecnica è detta microstepping. Qualora si abbia la necessità di ottenere solo il mezzo passo non è necessario il controllo della corrente, poichè attivando due induttori in contemporanea, il rotore si posiziona già a mezzo passo. L'utilizzo della tecnica a mezzo passo, permette di ridurre il movimento a scatto che si ottiene con uno step tradizionale.

 

Controllo della direzione di motori DC (alimentazione duale)

Qualora si abbia una alimentazione duale è possibile controllare la direzione di un motore DC a spazzole per mezzo di un solo transistor aggiuntivo. Lo schema circuitale che può essere utilizzato è riportato in Figura 3.

Figura 3: Controllo di un motore DC con alimentazione duale

Figura 3: Controllo di un motore DC con alimentazione duale

I due transistor non devono mai essere attivi in contemporanea, al fine di evitare un corto circuito delle alimentazioni. Il principio di funzionamento di tale struttura è relativamente semplice. Quando entrambi i transistor sono spenti (interdetti), il motore risulta fermo. Quando il transistor TR1 viene attivato, il motore si troverà collegato tra massa e una tensione positiva, dunque girerà in un verso (supponiamo orario). Disattivando il transistor TR1 e attivando il transistor TR2, il motore si troverà collegato tra massa e l'alimentazione negativa. Questa volta la massa risulta positiva rispetto all'alimentazione negativa, dunque questo equivale all'aver invertito i terminali + e - rispetto al caso precedente, dunque il motore si troverà a girare in verso opposto. La sequenza di cambio direzione deve avvenire con un lieve ritardo in maniera da permettere a un transistor di disattivarsi prima che si attivi l'altro. Si noti inoltre la disposizione dei diodi, che come negli altri casi, in caso ni normale funzionamento del motore risultano interdetti.

 

Controllo della direzione di motori DC, controllo lineare (alimentazione singola)

Nel caso in cui non sia presente un'alimentazione duale, un modo per far variare la direzione dei motori è per mezzo della cosiddetta tecnica lineare, ovvero facendo uso di due amplificatori lineari di potenza opportuna, ai quali siano collegati i terminali del motore.

In Figura 4 è riportato uno schema applicativo facente uso di due amplificatori di potenza.

Figura 4: Controllo lineare di un motore DC

Figura 4: Controllo lineare di un motore DC

Qualora non si abbiano amplificatori di potenza, è possibile aumentare la corrente erogabile dall'amplificatore, includendo un transistor all'interno del loop dell'amplificatore. Il principio di funzionamento della configurazione lineare è basato sul fatto che il parlare di + e di - equivale a dire che il potenziale di un terminale sia più alto o più basso dell'altro. Per mezzo della tecnica lineare, quello che si fa è proprio controllare degli amplificatori e regolarla in maniera tale da avere valori di tensione variabile. Si noti in particolare che nello schema presentato il primo operazionale è configurato come inseguitore di tensione, ovvero a guadagno unitario (la sua tensione in uscita è pari a quella in ingresso), mentre il secondo operazionale è collegato come sottrattore. In questo modo aumentando la tensione da un lato si diminuisce sull'altro ramo e viceversa. In Tabella 1 sono riportate le varie tensioni d´interesse ed in particolare quella del motore Vm.

 

Vin     V+     V-     Vm
0     0     Vcc     -Vcc
Vcc/2     Vcc/2     Vcc/2     0
Vcc     Vcc     0     +Vcc

Tabella 1

Difetto della configurazione ora mostrata è la sua efficienza, piuttosto bassa e variabile in base al valore della tensione applicata al motore. In particolare gli amplificatori si troveranno a dissipare la potenza legata alla differenza di tensione tra quella di alimentazione e quella applicata al motore (come per i regolatori lineari). Per tale ragione in alternativa al controllo lineare si fa spesso uso di un controllo per mezzo di un ponte H.

 

Il ponte H

Invertire la rotazione di un motore DC a spazzole equivale ad invertire i terminali + e - che alimentano il motore. Come visto in precedenza facendo uso di un solo transistor non è possibile invertire in maniera automatica i terminali di alimentazione del motore, mentre facendo uso di un'alimentazione duale è possibile per mezzo di due transistor invertire l'alimentazione del motore. Per mezzo della tecnica lineare è inoltre possibile "invertire" le alimentazioni anche nel caso di alimentazione singola, avendo però problemi di efficienza. Qualora si faccia uso di un'alimentazione singola, l'inversione dell'alimentazione del motore, quale valida alternativa al controllo lineare, può essere ottenuta per mezzo di un ponte H. Il ponte H non è altro che un circuito composto da 4 transistor, la cui configurazione somiglia molto ad una H come riportato in Figura 5 (da cui il nome).

Figura 5: Esempio di ponte H realizzato con transistor MOS

Figura 5: Esempio di ponte H realizzato con transistor MOS (i diodi di protezione sono omessi per semplicità, ma sono necessari)

Il suo funzionamento, considerando i transistor come degli interruttori ideali, è riportato in Figura 6.

 

Figura 6: Configurazioni di controllo di un ponte H. a) Motore disattivo, b) Rotazione in un verso, c) Rotazione verso opposto

Figura 6: Configurazioni di controllo di un ponte H. a) Motore disattivo, b) Rotazione in un verso, c) Rotazione verso opposto.

Si noti che due soli transistor alla volta, ovvero interruttori, risultano attivi (chiusi), in particolare i due transistor attivi non risultano mai dello stesso ramo altrimenti si avrebbe un corto circuito delle alimentzioni. Lasciando tutti gli interruttori aperti il motore risulta non alimentato, mentre chiudendo opportunamente due interruttori, caso b e c, è possibile ottenere i due versi di rotazione oraria e antioraria. Oltre alle configurazioni ora descritte ce ne sono altre due valide che vengono utilizzate in maniera equivalente al fine di frenare un motore in movimento. Le configurazioni per frenare il motore sono riportate in Figura 7:

Figura 7: Configurazioni frenanti di un ponte H

Figura 7: Configurazioni frenanti di un ponte H.

Un motore che viene messo in movimento può essere spento semplicemente disattivando il ponte o mettendo lo stesso in configurazione frenante. Disattivando il ponte, il motore viene fermato semplicemente dagli attriti (se libero di ruotare) mentre impostando il ponte in una delle due posizioni frenanti, il motore, oltre che dagli attriti, viene frenato dall'effetto elettromagnetico che si viene a creare cortocircuitando il motore stesso. Infatti un motore che ruota senza nessuna alimentazione, ovvero in rotazione libera, è praticamente una dinamo, dunque ai suoi capi si ha una forza elettromotrice f.e.m ovvero una tensione che risulta proporzionale alla velocità di rotazione del motore stesso e di segno opposto alla tensione che ha determinato la rotazione originale del motore (legge di Faraday Neumann Lenz). Cortocircuitando i terminali di un motore in rotazione libera circolerà dunque una corrente che sarà limitata dalla resistenza degli avvolgimenti del motore e dalle resistenze dei transistor usati come interruttori. Questo significa che verrà dissipata dell'energia sui transistor e nel motore stesso, il che equivale a frenare il motore (frenare equivale infatti a togliere energia cinetica dal corpo in movimento).

Un esperimento simpatico per verificare l'effetto frenante legato al circolare di una corrente, è possibile farlo in casa con un semplice motorino DC. Basterà avvolgere un filo di un metro sul rotore in maniera da far ruotare il motorino tirando il filo. Provare a tirare il filo e far ruotare il motore senza cortocircuitare i terminali. Riavvolgere poi il filo e cortocircuitare i terminali del motorino DC...e riprovare a tirare il filo...

Noterete che questa volta il motorino non girerà facilmente come prima, proprio per l'effetto frenante della corrente che circola nel motore per la f.e.m creatasi sui terminali del motore stesso.

La modellizzazione di un ponte H per mezzo di interruttori non rappresenta una semplificazione inutilizzabile in pratica, infatti si può realizzare un ponte H semplicemente utilizzando dei Relay. Si capisce però che realizzando il ponte H per mezzo di transistor è possibile ottenere spesso una miniaturizzazione del circuito ma soprattutto un aumento dell'affidabilità dello stesso, non essendo presenti parti meccaniche in movimento.

 

Controllo della direzione di motori DC con ponte H (alimentazione singola)

Da quanto appena visto sul ponte H è possibile capire che è possibile utilizzarlo per il controllo di un motore DC a spazzole. L'utilizzo di un ponte H permette infatti di controllare facilmente il verso di rotazione del motore pur avendo un'alimentazione singola. Se il ponte H viene controllato per mezzo di un segnale PWM è inoltre possibile variare la velocità del motore stesso. Le tecniche di controllo utilizzate sono:

 

Modalità signed magnitude

Questa modalità rappresenta l´implementazione pratica di quanto descritto sul ponte H. In Figura 8 è riportato un esempio, in cui si suppone che l'integrato abbia un segnale di enable per disattivare le uscite.

Figura 8: Controllo di un motore DC in modalità signed magnitude

Figura 8: Controllo di un motore DC in modalità signed magnitude .

Si noti che il segnale di enable è utilizzato per il controllo della velocità, ovvero viene utilizzato per mezzo di un segnale PWM. Mettendo il segnale PWM a 0% il motore risulta disattivo. Il verso di rotazione viene impostato per mezzo del segnale ON-OFF (Right-Left) per mezzo del quale si attivano i rami opportuni del ponte H. La funzione della porta NOT, è quella d'inverte il segnale di controllo al fine di attivare in maniera mutuamente esclusiva i due versi di rotazione.

Alcuni integrati, come LM18200 possiedono un pin dedicato al PWM e uno alla direzione oltre a quello di enable, permettendo oltre che alla modalità signed magnitude, anche quella LAP (vedi di seguito) senza necessitare di porte NOT esterne.

 

Modalità LAP (Locked anti-phase)

La modalità LAP è una tecnica molto utilizzata dal momento che permette di controllare in maniera più precisa la velocità di un motore e soprattutto la sua frenatura. La tecnica si basa semplicemente sul fatto che il verso di rotazione e la velocità sono controllate per mezzo di un segnale PWM che controlla il segnale di direzione, mentre il segnale di Enable è usato per attivare e disattivare l'integrato e non più per il controllo della velocità. Un esempio di controllo in modalità LAP è riportata in Figura 9.

Figura 9: Controllo di un motore DC in modalità LAP

Figura 9: Controllo di un motore DC in modalità LAP.

Quando il segnale PWM vale 0% si ha una rotazione in un verso mentre quando si ha il segnale PWM pari a 100% si ha una rotazione nel verso opposto. Nel caso in cui il segnale PWM è del 50% il motore risulta fermo; questo discende dal fatto che avere un diuty cycle del 50% equivale a fare un salto in avanti e un salto indietro...ovvero rimanere fermi!

Da un punto di vista fisico il rimanere fermi discende dal fatto che la corrente media che circola sul motore è nulla.

Nel caso di diuty cycle inferiore al 50% si ha una rotazione che aumenta all'avvicinarsi del diuty cycle allo 0%. Allo stesso modo per diuty cycle maggiori del 50% la rotazione avviene in senso opposto con velocità crescente al crescere del diuty cycle.

 

Ponti H commerciali

In commercio si trovano molti ponti H integrati, ovvero in cui tutti i transistor sono integrati in un unico package. Tra i maggiori produttori di integrati dedicati al controllo di motori DC vie è TI, Trynamic, ST, National Semiconductor, Fairchild, Infineon. Nonostante si abbia una vasta scelta, molti ponti H risultano di difficile reperibilità e di costi elevati. Spesso i ponti H integrati sono a montaggio superficiale, rendendo il loro utilizzo piuttosto complicato per uso hobbystico, visto che l'aletta di raffreddamento è posta alla base del package e deve essere propriamente saldata. Tra i ponti H di più facile reperibilità e il cui costo è relativamente contenuto, vie è l´L298, L293D, L6203 della ST e LMD18200, della National lemicondutor. Vediamo in breve alcuni pregi e difetti dei relativi ponti:

L298

Possiede due ponti H integrati in un package Multiwatt15. Permette il controllo di due motori DC o singolo motore stepper bipolare. E' realizzato per mezzo di transistor bipolari (BJT) rendendolo poco efficiente rispetto ai ponti realizzati per mezzo di transistor MOS, infatti la Ron dei transistor è relativamente alta e molta energia viene dissipata internamente. Risulta utile per il controllo di robot medio-piccoli, dal momento che possiede due ponti H capaci di controllare correnti fino a 2A per ponte ed una tensione operativa fino a 48V. L'integrato possiede una protezione interna in caso di temperatura eccessiva, situazione che si può verificare in caso di stallo di un motore. Il costo del ponte è piuttosto basso paragonato al ponte LMD12800.

L293D

L'integrato possiede due ponti H ottenuti per mezzo di quattro buffer indipendenti con uscita push-pull. L'integrato è realizzato per mezzo di transistor BJT, in un package DIL16. Ogni ramo del ponte risulta indipendente, permettendo di comandare anche quattro carichi induttivi separati, ovvero utilizzare diverse delle configurazioni sopra esposte, tra cui controllo di 4 motori DC ON-OFF, due motori DC con controllo direzione o controllo di un motore stepper unipolare/bipolare. Ogni ponte H permette di controllare correnti fino a 600mA e 1200mA di picco. Al suo interno sono già presenti i diodi di ricircolo a protezione dei transistor del ponte (l'integrato L293D esiste anche nella versione L293 senza diodi interni). L'integrato è piuttosto economico rispetto agli altri integrati presentati, ma ha il limite della corrente a 600mA.

LMD18200

L'integrato possiede un solo ponte H in un package Multiwatt11 e permette di controllare correnti continue fino a 3A ed una tensione operativa di 55V. Possiede la protezione termica e un segnale di warning per la temperatura che precede un possibile spegnimento dell'integrato. Il ponte permette la misura della corrente assorbita dal motore per mezzo di una tecnica di current sensing non basata su resistenza di potenza in serie al motore, limitando i costi della resistenza di potenza esterna e le dimensioni del PCB. L'integrato viene anche venduto nella versione senza current sensing LMD18201. I transistor di potenza del ponte sono di tipo DMOS e non BJT, permettendo di ridurre la resistenza Ron del ponte, migliorandone la sua efficienza. Le performance del ponte al controllo PWM sono ottime ma i suoi costi sono circa 3-5 volte superiori al ponte L298. Risulta particolarmente pratico nel caso si vogliano realizzare schede di controllo di potenza elevata. Per correnti ancora maggiori si può considerare la possibilità di realizzare dei ponti H per mezzo di componenti discreti, anche se in commercio è possibile trovare ponti H che permettono di controllare correnti fino a 10-20A.

L6203

L'integrato possiede un solo ponte H realizzato per mezzo di transistor DMOS, in un package Multiwatt15, Powerdip, SO20 e PowerSO20. Permette di controllare correnti continue fino a 4A ed una tensione operativa massima di 42V. La serie L620x, oltre al L6203 possiede gli integrati L6202 e L6201, la cui differenza è solo nella corrente massima che possono controllare.

Il controllo della corrente avviene per mezzo della resistenza in serie con i motori e misurando la caduta di tensione sulla stessa. L'integrato possiede una protezione termica che permette di disattivare il ponte nel caso di temperature elevate. A differenza dell'LMD18200 non possiede alcun pin dedicato per avvertire il raggiungimento di temperature intermedie, cosa utile per prevenire spegnimenti senza preavvisi. Il suo costo è piuttosto moderato rispetto al LMD18200.

Controllo di Motori Stepper bipolari

I motori Stepper Bipolari, diversamente dai motori stepper unipolari, pur possedendo lo stesso numero di induttori interni, possiedono un numero ridotto terminali, visto che gli induttori sono collegati in maniera tale che la corrente debba essere invertita durante la sequenza di movimento del motore. Il motore stepper bipolare possiede due coppie di induttori che necessitano di essere controllate, non solo ON-OFF come il motore stepper unipolare ma anche nel verso della corrente. Per tale motivo, da quanto appena detto, si capisce che è bene far uso di un ponte H per ogni coppia di induttori. Per il controllo di motori stepper bipolari un integrato molto utilizzato è L298, dal momento che al suo interno possiede due ponti H. Un esempio di controllo di stepper bipolari è riportato in Figura 10.

Figura 10: Schema di controllo di un motore stepper bipolare per mezzo di due ponti H

Figura 10: Schema di controllo di un motore stepper bipolare per mezzo di due ponti H.

Anche, per i motori stepper bipolari, è possibile ottenere un movimento half step (mezzo passo) semplicemente controllando ambedue le fasi contemporaneamente. Analogamente, controllando la corrente è anche possibile ottenere passi più piccoli.

 

Considerazioni progettuali

Sebbene siano presenti sul mercato molte soluzioni integrate pronte per l'uso, un progetto accurato ed eseguito con attenzione è sempre di fondamentale importanza. Considerazioni da tenere a mente sono:

  • Scegliere il ponte H in maniera da poter pilotare i motori scelti (o carichi induttivi).

  • Porre il ponte al lato del PCB in maniera da poter applicare alette di raffreddamento, spesso necessarie per un corretto funzionamento entro le specifiche del ponte stesso.

  • Proteggere i transistor del ponte per mezzo di diodi di ricircolo. I diodi devono essere del tipo fast recovery, qualora non siano già presenti nel ponte stesso.

  • Dimensionare le piste del PCB in maniera da poter lavorare propriamente con le correnti del motore.

  • Realizzare un buon collegamento di massa per limitare disagi di cadute di tensione che possano resettare l'unità di calcolo (microcontrollore, DSP, FPGA).

  • Valutare l'esigenza o meno di disaccoppiare con opto-couppler i segnali di controllo del ponte, dal resto del circuito.

  • Dimensionare in maniera opportuna l'alimentatore principale.

  • Disaccoppiare in maniera opportuna le alimentazioni del motore e della circuiteria di controllo. Spesso, in robot si fa usa di due blocchi di batterie, uno per i motori e uno per l'unità di controllo. Qualora questo non sia possibile è bene far uso di opportuni condensatori di disaccoppiamento e progettare l'alimentatore della parte di controllo per mezzo di convertitori DC-DC piuttosto che semplici diodi zener. Convertitori DC-DC hanno infatti un PSRR (Power Supply Ripple Rejection) superiore grazie all'utilizzo di un sistema a feedback e di sorgenti di riferimento spesso migliori di un semplice diodo zenner.

  • Utilizzare condensatori di disaccoppiamento per le alimentazioni del ponte. L'alimentazione dei motori è bene disaccoppiarla con condensatori in parallelo posti in prossimità dell'integrato stesso. Condensatori da utilizzare sono 100nF ceramico, in parallelo con un condensatore elettrolitico nell'intervallo 1uF-10uF.

  • In caso in cui l'efficienza sia un problema è bene considerare ponti H realizzati per mezzo di transistor MOS piuttosto che BJT, dal momento che la Ron dei MOS è più bassa, ovvero sono più vicini al comportamento di un interruttore ideale. Realizzando ponti discreti, al fine di diminuire la Ron è possibile collegare transistor in parallelo.