Secuencia de Fases para Motor Unipolar MSP430G2553
Saludos
Hoy les traigo un programa en ensamblador para hacer girar un motor a pasos UNIPOLAR por medio del Controlador MSP430G2553.
Material
1 protoboard
1 ULN2803 integrado de transistores
1 Motor a pasos unipolar de 5V, 12V, 24V
implemetaré la siguiente secuencia
1100
0110
0011
1001
que es la secuencia normal
CÓDIGO
*********************************************************************************
;SECUENCIA DE MOTOR A PASOS CON SALIDA DE LED´s
; MSP430x2xx
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P1.0|-->LED
;*******************************************************************************
.cdecls C,LIST, "msp430G2553.h" ; header
;-------------------------------------------------------------------------------
.text ; Inicio de programa
.retain
.retainrefs
;-------------------------------------------------------------------------------
RESET mov.w #250h,SP ; Inicializar stackpointer
AltoWDT mov.w #5A80h,&120h ; Alto WDT
;--------------------------------------------------------
bis.b #17h,&P1DIR ;definiedo P1.0, P1.1, P1.2 y P1.4 como salidas
;--------------------------------------------------------
Sentido1:
mov.b #14h,&P1OUT ;manda un 1 a las salidas P1.4 y P1.2
call #Tiempo ;llama subrutina de tiempo
call #Tiempo
mov.b #06h,&P1OUT ;manda un 1 a las salidas P1.2 y P1.1
call #Tiempo
call #Tiempo
mov.b #03h,&P1OUT ;manda un 1 a las salidas P1.1 y P1.0
call #Tiempo
call #Tiempo
mov.b #11h,&P1OUT ;manda un 1 a las salidas P1.0 y P1.4
call #Tiempo
call #Tiempo
jmp Sentido1 ;repite el sentido1
;-------------------------------------------------------
Tiempo mov.w #0FFFFh,R5 ;subrutina (para que el motor gire más rápido podemos poner otras ;frecuencias #010FF ó #003FF)
LoopTiempo: dec.w R5
jnz LoopTiempo
ret
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
.sect ".reset" ; Vector de RESET
.short RESET
Hoy les traigo un programa en ensamblador para hacer girar un motor a pasos UNIPOLAR por medio del Controlador MSP430G2553.
Material
1 protoboard
1 ULN2803 integrado de transistores
1 Motor a pasos unipolar de 5V, 12V, 24V
implemetaré la siguiente secuencia
1100
0110
0011
1001
que es la secuencia normal
CÓDIGO
*********************************************************************************
;SECUENCIA DE MOTOR A PASOS CON SALIDA DE LED´s
; MSP430x2xx
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P1.0|-->LED
;*******************************************************************************
.cdecls C,LIST, "msp430G2553.h" ; header
;-------------------------------------------------------------------------------
.text ; Inicio de programa
.retain
.retainrefs
;-------------------------------------------------------------------------------
RESET mov.w #250h,SP ; Inicializar stackpointer
AltoWDT mov.w #5A80h,&120h ; Alto WDT
;--------------------------------------------------------
bis.b #17h,&P1DIR ;definiedo P1.0, P1.1, P1.2 y P1.4 como salidas
;--------------------------------------------------------
Sentido1:
mov.b #14h,&P1OUT ;manda un 1 a las salidas P1.4 y P1.2
call #Tiempo ;llama subrutina de tiempo
call #Tiempo
mov.b #06h,&P1OUT ;manda un 1 a las salidas P1.2 y P1.1
call #Tiempo
call #Tiempo
mov.b #03h,&P1OUT ;manda un 1 a las salidas P1.1 y P1.0
call #Tiempo
call #Tiempo
mov.b #11h,&P1OUT ;manda un 1 a las salidas P1.0 y P1.4
call #Tiempo
call #Tiempo
jmp Sentido1 ;repite el sentido1
;-------------------------------------------------------
Tiempo mov.w #0FFFFh,R5 ;subrutina (para que el motor gire más rápido podemos poner otras ;frecuencias #010FF ó #003FF)
LoopTiempo: dec.w R5
jnz LoopTiempo
ret
;-------------------------------------------------------------------------------
; Interrupt Vectors
;-------------------------------------------------------------------------------
.sect ".reset" ; Vector de RESET
.short RESET
********************************************************************************
Si quieren invertir el sentido de giro del motor, sólo intercambien las líneas
mov.b #14h,&P1OUT <===>mov.b #03h,&P1OUT
Conexión del ULN2803 con le motor a pasos
P1.0=ActivaA
P1.1=ActivaC
P1.2=ActivaB
P1.4=ActivaD
OJO: NO CONECTAR GND Y VCC DEL MICROCONTROLADOR MSP430G2553 AL PROTOBOARD. SOLO CONECTAR LOS PUERTOS P1.0, P1.1, P1.2 y P1.4.
Al motor a pasos le debemos conectar un Vcc de mínimo 6V para que gire, igual al ULN2803, éste soporta un Vcc hasta de 30V, pero su Vcc del UNL2803 estará definido por el máximo voltaje que soporte nuestro motor a pasos.
Comentarios
Publicar un comentario