Práctica Motor a Pasos ULN2003A PIC16F877A
Motores a Pasos.
El motor paso a paso es
un dispositivo electromecánico que convierte una serie de impulsos eléctricos
en desplazamientos angulares discretos, lo que significa que es capaz de
avanzar una serie de grados (paso) dependiendo de sus entradas de control. El
motor paso a paso se comporta de la misma manera que un conversor digital-analógico (D/A) y puede ser gobernado por
impulsos procedentes de sistemas lógicos.
Este motor presenta las
ventajas de tener alta precisión y repetitividad en cuanto al posicionamiento.
Entre sus principales aplicaciones destacan como motor de frecuencia variable, motor de corriente continua sin escobillas, servomotores y motores controlados digitalmente.
Existen 3 tipos
fundamentales de motores paso a paso: el motor
de reluctancia variable, el motor
de magnetización permanente, y el motor paso a paso híbrido.
Motor a pasos ULN2003.
Para
controlar un motor paso a paso unipolar deberemos alimentar el común 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 electromagnético que atraerá el polo magnetizado del rotor y
el eje del mismo girará.
Para
hacer esto podemos usar transistores montados en configuración 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 más 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:
Datasheet.
Código.
'Motor
a Pasos
'PIC 16F877A
AllDigital
ADCON1 = 0x0e
Define STEP_A_REG = PORTB
Define STEP_A_BIT = 7
Define STEP_B_REG = PORTB
Define STEP_B_BIT = 6
Define STEP_C_REG = PORTB
Define STEP_C_BIT = 5
Define STEP_D_REG = PORTB
Define STEP_D_BIT = 4
Define STEP_MODE = 2
WaitMs 1000
StepHold
WaitMs 1000
Dim an0 As Word
loop:
Adcin
0, an0
an0
= an0 * 60
an0
= an0 + 2000
StepCW
1, an0
Goto loop
No hay comentarios: