Professional Documents
Culture Documents
ACTIVIDAD INDIVIDUAL
TUTOR:
Se denominan as debido a que la corriente que circula por sus bobinas lo hace en
un mismo sentido, a diferencia de los bipolares. Se componen de 6 cables
externos, dos para cada bobina, y otro para cada par de stas, aunque tambin se
pueden ver con 5 cables, compartiendo el de alimentacin para los 2 pares de
bobinas.
Medio Paso:
Combinando los dos tipos de secuencias anteriores podemos hacer moverse al
motor en pasos ms pequeos y precisos y as pues tenemos el doble de pasos
de movimiento para el recorrido
LA PRCTICA:
Unipolar: Para controlar un motor paso a paso unipolar deberemos alimentar el
comn del motor con Vcc y conmutaremos con masa en los cables del devanado
correspondiente con lo que haremos pasar la corriente por la bobina del motor
adecuada y esta generar un campo electromagntico que atraer el polo
magnetizado del rotor y el eje del mismo girar. Para hacer esto podemos usar
transistores montados en configuracin Darlington o usar un circuito integrado
como el ULN2003 que ya los lleva integrados en su interior aunque la corriente
que aguanta este integrado es baja y si queremos controlar motores mas potentes
deberemos montar nosotros mismos el circuito de control a base de transistores
de potencia. El esquema de uso del ULN2003 para un motor unipolar es el
siguiente: Las entradas son TTL y se activan a nivel alto, tambin disponen de
resistencias de polarizacin internas con lo que no deberemos de preocuparnos
de esto y podremos dejar "al aire" las entradas no utilizadas. Las salidas son en
colector abierto
do{
//aki va la nueva seccion de codigo usando IF
if(input(PIN_A0)==1)
{
output_high(pin_b0);
delay_ms(50);
output_low(pin_b0);
delay_ms(20);
//
output_high(pin_b1);
delay_ms(50);
output_low(pin_b1);
delay_ms(20);
//
output_high(pin_b2);
delay_ms(50);
output_low(pin_b2);
delay_ms(20);
//
output_high(pin_b3);
delay_ms(50);
output_low(pin_b3);
delay_ms(20);
}
if(input(PIN_A1)==1)
{
output_high(pin_b3);
delay_ms(50);
output_low(pin_b3);
delay_ms(20);
//
output_high(pin_b2);
delay_ms(50);
output_low(pin_b2);
delay_ms(20);
//
output_high(pin_b1);
delay_ms(50);
output_low(pin_b1);
delay_ms(20);
//
output_high(pin_b0);
delay_ms(50);
output_low(pin_b0);
delay_ms(20);
}
else
{
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b4);
}
}while(true);
}
Etapa 2
Control de direccin del motor paso a paso
Circuito de control
Codigo Implementado
; programa : Motor paso a paso unipolar
; Descripcion : control de motores paso a paso bipolares
; autor : Raul Alejadnro QL
org 0000h
; condiciones iniciales
mov r2,#0
mov dptr,#giro
; esperando pulsar boton
inicio:
mov a,p3
anl a,#00000011b
jnb izq,izquierda
jnb der,derecha
mov p0,#0
ajmp inicio
izquierda:
mov a,r2
movc a,@a+dptr
mov p0,a
acall seg05
inc r2
cjne r2,#4d,inicio
mov r2,#0
ajmp inicio
derecha:
mov a,r2
movc a,@a+dptr
mov p0,a
acall seg05
dec r2
cjne r2,#0ffh,inicio
mov r2,#3
ajmp inicio
;************************
; retardo de 500 micro segundos (500us)
;************************
; tiempo = sec * 12 periodos
; 12MHz 1 ciclo de maquina
;************************
; tiempo = 0.5 s = 500000us
; ciclos de maquina
;************************
seg05: ;(2) = 2
mov r6,#0fah ;(1) = 1
xx: mov R7,#0f9h ;(1)*r6[250] = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
xxx: nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
djnz R7,xxx ;(2)*r6[250]*r7[249] = 124500
djnz r6,xx ;(2)*r6[250] = 500
ret ;(2) = 2
; ----------------------------------
; 500005
;-*-*-*-*-*-*-*-*-*-*
; secuencia de giro "PASO SIMPLE"
;-*-*-*-*-*-*-*-*-*-*
giro:
db 00000001b ; +0
db 00000010b ; +1
db 00000100b ; +2
db 00001000b ; +3
end