domingo, 17 de abril de 2011

HCS08 - Motorola Freescale - Controlar Motor a pasos

CONTROLAR UN MOTOR A PASOS BIPOLAR
CON HCS08 y DRIVER L293B

* Micro HCS08
* Open Source BDM (o con lo que programes el micro)
* Driver (puente H) L293B
* Resistencias
* Motor a pasos (stepper motor) bipolar
*4 diodos

NOTA: puedes no usar los diodos (pero si hay una fuerte corriente inversa debido a los devanados del motor no me heches la culpa)

Controlaremos un motor a pasos bipolar usando nuestro micro motorola freescale, las conexionas son tal y como se muestra:





Es logico que al micro se alimenta con 5v, mientras que al motor lo alimentas CON UNA FUENTE APARTE de mayor voltaje, ni se te ocurra alimentarl los dos con la misma fuente

Yo por ejemplo para el micro use la que me proporcionaba la Open source bdm, directa de la USB, y para el motor use un cargador de 10v


El programa hace que motor de 10 vueltas hacia un lado, despues hacia el otro y despues se detenga

NOTA: el numero de vueltas siempre varia por el motor que se use, debido a la relacion step/revolution, o paso vuelta, es decir, el numero de pasos necesarios para el motor gire una vuelta completa, que varia con cada motor.

codigo:



mainLoop:
LDA   #$FF
STA   $03

;$F1 10 vueltas
;$DC 9 vueltas
;$C4 8 vueltas
;$AC 7 vueltas
;$94 6 vueltas
;$7D 5 vueltas
;$64 4 vueltas
;$4B 3 vueltas
;$32 2 vueltas
;$19 1 vuelta

LDA   #$F1
STA   $81
STA   $80

DER:        

feed_watchdog
LDA   #$09
STA   PTBD
BSR   DELAY
LDA   #$0A
STA   PTBD
BSR   DELAY
LDA   #$06
STA   PTBD
BSR   DELAY
LDA   #$05
STA   PTBD
BSR   DELAY

DBNZ $80,DER 
BRA   IZQ

IZQ:        

feed_watchdog
LDA   #$05
STA   PTBD
BSR   DELAY
LDA   #$06
STA   PTBD
BSR   DELAY
LDA   #$0A
STA   PTBD
BSR   DELAY
LDA   #$09
STA   PTBD
BSR   DELAY

DBNZ  $81,IZQ            

BRA  fuera   





DELAY       
LDHX  #$0000
RET1        
feed_watchdog
AIX   #$01
CPHX  #$0500
BNE   RET1

RTS

fuera:      feed_watchdog      
bra fuera

No hay comentarios:

Publicar un comentario