Home   -     Progetti    -    Appunti    -    Avvertenze   -    Contatti


Controllo di un motore passo-passo bipolare con UDN2916B

 

Scarica i file per realizzare questo progetto

 

Driver UDN2916B

L'integrato UDN2916B implementa un doppio ponte ad H con possibilità regolare la corrente d'uscita. Questa caratteristica rende più flessibile la scelta della tensione di alimentazione del driver. La modulazione della corrente nelle fasi permette l'utilizzo di resistenze per feedback a basso valore ohmico. Queste caratteristiche rendono il controllo del motore particolarmente semplice con garanzia di un'elevata efficienza.

L'unico inconveniente di questo dispositivo driver per questa applicazione è la corrente massima non particolarmente elevata: sono disponibili  al massimo 0.75A, rispetto la corrente massima del motori di 1.0A.

 

 

Schema

Lo schema elettrico è molto semplice. Viste le correnti in gioco non particolarmente elevate, ho preferito non inserire i diodi di clamping sulle uscite del driver, per non complicare inutilmente la realizzazione del circuito. 

Il PIC utilizzato, un 16F873, è un modello molto comune e serve per generare gli impulsi necessari alla movimentazione del motore. Per il trasferimento del firmware sul microcontrollore ho utilizzato il minipropic2clone. Ho trovato che il PIC 16F873 e' molto facile da programmare Ii-ciruit, rispetto ad altri modelli. Nello schema e nelle foto e' infatti presente un connettore per la programmazione a 5 poli. Solo 4 sono utilizzati perchè, durante la programmazione In-ciruit, il circuito non prende alimentazione dal programmatore ma si alimenta col proprio regolatore di tensione.

 

 

Circuito

Per questo schema non ho disegnato un circuito stampato, ma lo ho montato i componenti su basetta mille fori. Sono comunque disponibili i file per il CAD EAGLE. Chiunque ne abbia voglia può cimentarsi nella sviluppo del PCB. Occorre in ogni caso fare attenzione a rispettare alcuni vincoli fondamentali. Occorre prestare particolare attenzione alla connessione di massa. E' preferibile far partire tutte le connessioni di massa da uno stesso punto, separando la parte che alimenta gli integrati da quella che fornisce energia al motore.  Per limitare sovratensioni sull'alimentazione e' necessario inserire un condensatore elettrolitico, preferibilmente a bassa ESR, in prossimità dell'alimentazione di potenza sul driver UDN2916B.

 

Utilizzo

Per controllare la velocità e il verso di rotazione del motore occorre agire sulla manopola del potenziometro. Per una maggiore semplicità  nell’utilizzo e’  preferibile l’utilizzo di un poteziometro rotativo. La posizione corrispondente allo stato con motore fermo e’ quella con il cursore del potenziometro al centro, ovvero a metà della sua corsa. Ruotando il cursore in un verso o nel verso contrario, si ottiene la rotazione dell’albero del motore, in un verso oppure nel verso opposto. La velocità di rotazione è proporzionale allo spostamento dalla posizione di zero. La velocità minima e’ di 6 giri al minuto mentre quella massima teorica e’ di circa 300 giri al minuto, in entrambe i versi di rotazione.

Quando alimentato, il circuito accende subito per 1 secondo entrambi i LED. Poi il solo LED verde inizia a lampeggiare velocemente, per indicare che il programma è in esecuzione. Il LED rosso è acceso. Occorre quindi portare il cursore del potenziometro in posizione centrale, in modo da  spegnere il LED verde. Questa procedura serve ad evitare che al power-up il motore inizi subito a girare, se per caso, sì lasciato il potenziometro fuori la posizione di zero (posizione con cursore al centro della corsa). Questo stato si presenta infatti anche alimentando il circuito col cursore del potenziomentro in posizione centrale.

Ho provato questo circuito alimentandolo con 9Vdc e con 17Vdc, non stabilizzati.

Non ho eseguito prove sulle prestazioni meccaniche, ma ho notato un sensibile aumento della coppia erogata rispetto il controllo senza feedback della corrente. Questo si traduce però anche in maggiori vibrazioni meccaniche, più evidenti a basse velocità di funzionamento. Ancora appare lieve ma sensibile il calo di coppia all'aumentare della velocità di rotazione.

 

Upgrade

Potrebbe essere interessante poter scegliere, allo start-up, tra diverse modalità di controllo: wave mode, half step, two phase on.

 

Un'altra possibilità può derivare dalle periferiche integrate nel micro 16F873, che dispone al suo interno di due moduli CCP. Con ciascuno di questi moduli e' possibile generare un segnale modulato PWM ad alta frequenza. Con un filtro passa basso e' poi possibile estrarre la componente continua di questi segnali. In pratica si renderebbero disponibili due segnali in continua modulabili con il valore del duty-cycle del rispettivo segnale  PWM. Controllando opportunamente questi segnali e applicandoli agli ingressi Vref del driver bipolare sarebbe in teoria possibile implementare un controllo microstepping del motore.

 

 


Home   -     Progetti    -    Appunti    -    Avvertenze   -    Contatti