mercoledì 27 marzo 2013

Controllo motore bipolare con 12F683 in half stepping

 
Vogliamo controllare un motore passo passo bipolare con questi dati di targa: 6,7V/fase, 0,42A/fase  per 16ohm/fase e 1,8° ogni passo.
Per completare una rotazione sarà quindi necessario inviare 200 impulsi (360°/1,8°=200passi).

 



Vista la bassa corrente di pilotaggio si è optato per un doppio ponte a H integrato (SN754410NE - 1A quadruple Half-H driver). La tensione di controllo può andare da 4,5V a 36V.
Si rimanda comunque al datasheet: http://www.ti.com/lit/ds/symlink/sn754410.pdf.

 
 
I 4 pin (...A) sono utilizzati per il controllo (1A, 2A, 3A, 4A) del doppio ponte H. I pin 1,2EN e 3,4EN abilitano i canali 1,2,3 e 4 del ponte a Hvengono collegati direttamente ai 5V (insieme al pin Vcc1) di alimentazione e quindi sempre abilitati.
Il pin Vcc2 è collegato alla tensione di alimentazione del motore. I pin 1Y e 2Y sono collegati ad una fase del motore, i restanti 3Y e 4Y all'altra fase.
I pin 4,5,12 e 13 sono collegati a massa e andrebbero collegati all'eventuale dissipatore di calore.
 
 
 
Per il microprocessore si è scelto il pic 12F683.
I controlli sono:
  • un pulsante collegato a massa al pin GP3 e mediante resistenza di pullup verso i 5V per comandare lo direzione e/o spegnimento
  • un potenziometro per la definizione della velocità; il pin centrale è collegato al pin GP0 analogico del pic.
Viene disabilitato il WDT e il controllo MCLR per utilizzare il pin GP3 come ingresso.
Il pin GP0 è configurato come ingresso analogico e viene anche attivato il convertitore analogico digitale con 10 bit di risoluzione. Questo ci consente di avere valori da 0 a 1024 che utilizzeremo come ritardo tra un impulso e l'altro inviato al motore bipolare.
Mediante interrupt si rimane in ascolto della pressione del pulsante e il TIMER0 viene configurato per interrupt ogni 100ms per la lettura analogica della posizione del ponteziometro.
 
 
I pin GP1, GP2, GP4 e GP5 sono quindi collegati agli ingressi 1A, 2A, 3A e 4A del ponte H.
Il led è collegato al pin GP5 mediante una resistenza da 1K.
 
 
Il motore viene comandato in modalità half-step. In pratica l'alternarsi di due configurazioni,
cioe’del metodo base “wavemode”e del metodo “two-phase-on”:
  • Risulta raddoppiato il numero di passi per compiere un giro completo.
  • Si ha una certa irregolarità nella coppia meccanica; ad ogni passo cambia da 1 a 1.4 e viceversa.
Se si vuole ottenere una velocità di circa 150rpm (giri al minuto) occorre pilotare il motore con 1000 impulsi al secondo (1000pps=150/60*400step); il tempo di attesa tra un impulso e l'altro deve quindi essere di 1ms.
 
Firmware (12F683): fw_ver.1.0.0
 
PS: a breve lo schema del circuito.