Home page

Prof. Francisco R. Quaranta


 

Realizzazione di un interfaccia per motore passo passo

Il motore passo passo è un attuatore elettromeccanico di tipo digitale, che per poter funzionare in modo corretto ha bisogno di ricevere sulle sue fasi una sequenza ordinata di impulsi. Quindi l'interfaccia deve essere in grado di generare questa sequenza di impulsi e di fornire una potenza adeguata  per il pilotaggio.

Da quanto esposto lo schema a blocchi dell'interfaccia sarà il seguente:

Ad ogni impulso di Clock il motore avanza di un passo, Dir permette di invertire il senso di marcia del motore passo passo. Il generatore di sequenza è realizzato mediante un contatore Up/Down binario; il codificatore è realizzato mediante un circuito combinatorio che trasforma ogni sequenza in opportune tensioni da inviare all'amplificatore per pilotare le fasi del motore passo passo.

Supponiamo di avere un motore passo passo di tipo unipolare a quattro fasi ( è stata fatta questa ipotesi, perché è il motore più diffuso in commercio) e di volerlo pilotare in modo "normal driver", questo tipo di pilotaggio consente di avere coppie maggiori in quanto sono attive due fasi contemporaneamente.  Lo schema di principio del motore su cui eseguiremo la nostra analisi è il seguente:

  

dalla figura si evince che l'asse del motore ad ogni passo compie una rotazione di 45° e quindi in quattro passi compie un giro completo; per le applicazioni pratiche un passo di 45° è una rotazione troppo ampia, soprattutto quando si tratta di sistemi di posizionamento di precisione, ricordando la relazione che lega l'ampiezza del passo j, il numero di fasi n e il numero di coppie polari  p rotoriche del motore è la seguente:

  

Si può variare l'ampiezza del passo mantenendo inalterato il numero delle fasi e facendo variare il numero delle coppie polari. A titolo di esempio si riporta una tabella in cui è indicato l'ampiezza del passo in funzione del numero di coppie rotoriche per un numero di fasi pari a quattro (generalmente il numero di fasi, come precedentemente asserito non è mai superiore a quattro).

Angolo passo: j Coppie polari: p impulsi/giro
0,72° 125 500
1,80° 50 200
3,60° 25 100
7,50° 12 48
15,00° 6 24
18,00° 5 20

 Quindi tutte le deduzioni ed osservazioni che andremo a fare per il motore a quatto fasi e quattro passi per giro saranno valide per tutti i motori con numero di passi qualsiasi per giro purché si mantenga inalterato il numero delle fasi. 

L'animazione seguente mostra come sono alimentate le fasi del motore per far ruotare questo in senso orario.

Indicando con "1" interruttore chiuso (quindi fase alimentata) e con "0" interruttore aperto (quindi fase non alimentata). La seguente tabella riepiloga la sequenza degli impulsi da inviare sulle fase per consentire una rotazione in senso orario dell'asse del motore.

A B C D
1 1 1 0 0
2 0 1 1 0
3 0 0 1 1
4 1 0 0 1

Per invertire il senso di rotazione dell'asse del motore si dovrà invertire la sequenza di alimentazione delle fasi, come mostra la seguente animazione:

La seguente tabella riepiloga la sequenza degli impulsi da inviare sulle fase per consentire una rotazione in senso antiorario dell'asse del motore.

A B C D
4 1 0 0 1
3 0 0 1 1
2 0 1 1 0
1 1 1 0 0

Da quanto esposto, si osserva che per invertire la marcia del motore basta percorrere la sequenza all'indietro e quindi il blocco generatore di sequenza sarà costituito da un contatore up/down binario di cui di utilizzeranno i due bit meno significativi ( Q1 e Q0), essendo costituita la sequenza da quattro fasi. Sul clock del contatore si applicheranno tanti impulsi per quanti passi dovrà avanzare il motore e al pin U/D si applicherà lo stato logico "1" oppure lo stato logico "0" a seconda che i passi dovranno essere fatti in avanti o indietro.Allo scopo nel nostro progetto è stato utilizzato il contatore binario sincrono bidirezionale 74LS169.

Dobbiamo ora realizzare il codificatore che sarà costituito da una rete combinatoria che avrà come ingressi le uscite del contatore e come uscite gli ingressi degli amplificatori di potenza che andranno a pilotare gli avvolgimenti delle fasi del motore. Quindi la tabella di verità del circuito combinatorio sarà il seguente:

Ingressi

Uscite

Q1 Q0 A B C D
0 0 1 1 0 0
0 1 0 1 1 0
1 0 0 0 1 1
1 1 1 0 0 1

  Per l'uscita A la relazione booleana sarà la seguente:

Si tratta di una porta EX-NOR. Per l'uscita B la relazione booleana sarà la seguente:

 

L'uscita B è uguale alla variabile Q1 negata. Per l'uscita C la relazione booleana sarà la seguente:

 

Si tratta di una porta EX-OR. Infine per l'uscita D avremo:

L'uscita D è uguale alla variabile Q1. Analizzando le relazioni booleane si evidenzia che la funzione A è realizzata mediante una porta EX-NOR, mentre la funzione C è realizzata mediante una funzione EX-OR, notiamo anche che la funzione B è ottenuta negando la variabile Q1, osserviamo inoltre che con una porta EX-OR è possibile ottenere la negazione di una variabile inviando ad un ingresso la variabile che si vuole negare e all'altro basta porre lo stato logico "1". Questo ci consente direalizzare l'intero circuito combinatorio con quattro porte EX-OR come di seguito riportato:

 

Le porte logiche necessarie sono contenute nell'integrato della famiglia TTL 74LS86. 

 Dobbiamo considerare il dimensionamento dell'amplificatore di potenza, esso è costituito da quattro transistori di potenza, uno per ogni fase, funzionanti da interruttori, quando sono chiusi sono in saturazione e quando sono aperti sono in interdizione. La scelta dei semiconduttori la facciamo tenendo in considerazione il fatto che una porta logica della famiglia logica TTL allo stato alto non può superare i 400 mA (correnti maggiori comporterebbero il degrado dello stato logico "1") . Inoltre vogliamo realizzare un circuito relativamente semplice e che nel contempo fornisca una potenza relativamente grande. La scelta cade sul dispositivo BDW93C all'interno del quale è integrato un circuito Darlington, come schematizzato in figura:

Il contenitore del darlington è il TO-220, si può notare che il circuito contiene anche il diodo di ricircolazione della corrente necessario quando si devono pilotare carichi induttivi, come nel nostro caso; il circuito di pilotaggio di una fase sarà il seguente:

  

Dal data sheet del transistore si ricava che per IC = 1 A, VBE = 1,3 V; sapendo inoltre che VBB = 5 V e IB= 400 mA; possiamo calcolare la resistenza di polarizzazione di base RB del darlington.

Il valore commerciale più vicino a quello calcolato per RB è di 10 KW. Con quest'ultimo calcolo tutti i componenti dell'interfaccia risultano dimensionati per cui il circuito elettrico completo è il seguente:

 

Materiale occorrente:

R1 = 4,7 KW

R2 = 2,7 KW

R3 = R4 = R5 = R6 = 10 KW

C1 = C2 = 100 nF

T1 = T2 = T3 = T4 = BDW93C

U1 = 74LS169

U2 = 74LS86

4 alette di raffreddamento con i relativi dispositivi d’isolamento per contenitore TO-220

Motore passo passo unipolare a quattro fasi

+VCC = 5 V

Conclusioni

In commercio esistono interfacce per il pilotaggio dei motori passo passo come l'integrato SAA1042-42A (di Motorola per esempio) che può pilotare direttamente motori che assorbono 500 mA per fase, progettati per pilotare sia pilotare motori unipolari e sia motori bipolari. Nel nostro caso si è voluto dimensionare interamente l'interfaccia utilizzando componenti discreti che si possono reperire facilmente in un laboratorio di elettronica, inoltre si è voluto sottolineare il fatto che mettendo insieme le conoscenze di base si possa realizzare un sistema relativamente complesso.

L'interfaccia è stata sviluppata a scopo puramente didattico, è stata provata con diversi tipi di motori passo passo unipolari anche con numero di passi diversi per giro, come i motori passo passo che trascinano il carrello delle stampanti per elaboratori o i motori recuperati dai vecchi driver per floppy disk da 8" 1/4, perciò nella lista materiali non è stato riportato un tipo di motore specifico, l'importante è non superare l'assorbimento di 1 A per fase e tensione di alimentazione di 5 V. Qualora si volessero utilizzare motori con tensione di alimentazione superiore a 5 V si dovrà provvedere ad un circuito che derivi una tensione di alimentazione di 5 V per il pilotaggio della logica dell'interfaccia realizzata in logica TTL. Altro limite è la velocità di pilotaggio del clock (ad ogni impulso di clock il motore avanza di un passo) questa dipende dalle dimensioni del motore, più il motore è grande e più bassa deve essere la velocità del clock, altrimenti si ha la perdita del passo del motore; con conseguente blocco di quest'ultimo. Con i motori utilizzati la perdita del passo si e avuta con frequenze intorno a 400 Hz. Altro punto a cui bisogna fare attenzione e il corretto collegamento delle uscite dell'interfaccia alle fasi del motore, perché se non fatto come indicato il motore oscilla facendo un passo avanti e uno indietro senza compiere alcuna rotazione.