Está en la página 1de 7

CONTROL DE MOTOR PASO A PASO CON PIC16F84A

Siguiendo con las prcticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestros
Microcontroladores PIC, en esta ocasin ser el control de un motor a pasos unipolar.
Adems es una pequea demostracin de la gran cantidad de formas en las cuales
podemos utilizar el ya conocido PIC16F84A.
El circuito es sencillo consta de un motor paso a paso dos pulsadores para hacerlo girar en
ambas direcciones (izquierda o derecha) conectados al puerto A del PIC con sus debidas
resistencias y tambin su oscilador a 4MHz con sus respectivos capacitores de 22pF, tiene
su botn de Reset conectado al Master Clear, para acoplar se utiliza un integrado ULN2803
activado desde el puerto B del PIC. Recordar que los pines de alimentacin del PIC son: 5
para GND y 14 para Vcc=5 Volts.
Como se controla un motor paso a paso unipolar
Estos motores suelen tener 6 o 5 cables, dependiendo de su conexin interna. Este tipo se
caracteriza por ser ms simple de controlar por esta razn ser el que utilicemos. En la
siguiente figura podemos apreciar un ejemplo para controlar un motor paso a paso
unipolar mediante el uso de un ULN2803, el cual es un arreglo de 8 transistores tipo
Darlington capaces de manejar cargas de hasta 500mA. Las entradas de activacin se
conectan directamente al un microcontrolador.

Dejo la lista de material para poder realizar este ejemplo y seguir aprendiendo de la
programacin.
MATERIAL:
1 PIC16F84A
1 ULN2803
1 Motor a pasos unipolar (5 o 6 cables)
3 Pulsadores
3 Resistores de 330 a 1/2 W
1 Cristal de cuarzo de 4MHz
2 Capacitores de 22pF
Secuencias para manejar motores paso a paso unipolares
Existen tres secuencias posibles para activar este tipo de motores, las cuales se explican a
continuacin. Todas las secuencias comienzan nuevamente en el paso 1 una vez que
alcanzan el ltimo paso (4 u 8). Para hacer que el motor gire en sentido opuesto,
simplemente basta con ejecutar las secuencias de manera inversa.
Secuencia Normal: Esta es la secuencia ms usada y la que generalmente recomienda el
fabricante. Con esta secuencia el motor avanza un paso por vez y debido a que siempre hay
al menos dos bobinas activadas, se obtiene un alto torque de paso y de retencin.

Secuencia del tipo wave drive: En esta secuencia se activa solo una bobina a la vez. En
algunos motores esto brinda un funcionamiento ms suave. Pero al estar solo una bobina
activada, el torque de paso y retencin es menor.

Secuencia del tipo medio paso: En esta secuencia se activan las bobinas para brindar un
movimiento igual a la mitad del paso real. Para ello se activan primero 2 bobinas y luego
solo 1 as sucesivamente. Se puede decir que es una combinacin de las dos formas
anteriores, en este caso para lograr una vuelta tiene que hacer 8 pasos y no 4 como los
anteriores.

Realizando el firmware para controlar nuestro motor
Para este ejemplo utilizare la secuencia wave drive, el comando que se utilizara para
mostrar el valor en el puerto B es LOOKUP. Los valores dentro de LOOKUP pueden ser en
forma hexadecimal para ello el compilador requiere que se utilice el smbolo $, si se
quisiera utilizar los nmeros en binario se debe de agregar el % y para los decimales solo
basta escribir el numero tal y como es, estas tres posibilidades deben de ir separadas por
comas. Nosotros utilizaremos decimales.




El cdigo en Basic para este circuito es el siguiente:

Se declara el puerto B como salida, se declara la variable DIGITO, se inicializa el puerto B en
cero, etiqueta de INICIO que es la principal, donde estar todo el cdigo que haga que el
motor funcione.
La instruccin LOOKUP va mostrar una variable DIGITO en el puerto B y se tiene la
siguiente sintaxis:
LOOKUP DIGITO, [1, 2, 4, 8], PORTB
Se utiliza la variable DIGITO para saber que dato es que se va a mostrar recordar que esta
variable despus de mostrarse se incrementa en uno, despus de le coloca un retardo para
dar tiempo entre paso y paso este tiempo se puede modificar para aumentar o disminuir la
velocidad de giro.
La variable DIGITO cuanta de 0 a 4 por que la secuencia utilizada solo tiene 4 pasos, cuando
de utiliza la secuencia de 8 paso se debe de incrementar a 8 y de debe de modificar los
valores dentro de la instruccin LOOKUP.
Como identificar las terminales de los motores unipolares
Cuando se trabaja con motores paso a paso usados o bien nuevos, pero de los cuales no
tenemos hojas de datos. Es posible determinar la distribucin de los cables a los bobinados
y el comn siguiendo las instrucciones siguientes:
Identificando el comn: Por lo regular los motores con 6 cables tienes dos cables para el
comn y generalmente son del mismo color (Negro), recomiendo unirlos para no
confundirse en un futuro, para el caso de tener uno de 5 cables tambin aplica lo del color
Negro.
Identificando los cables de las bobinas (A, B, C y D): Aplicar un voltaje al cable comn se
puede usar 5V y manteniendo uno de los otros cables a tierra (GND) mientras vamos
poniendo a tierra cada uno de los dems cables de forma alternada y observando los
resultados. La nomenclatura de los cables (A, B, C y D) es totalmente arbitraria.
1. Seleccionar un cable y conectarlo a tierra. Ese ser llamado cable A.
2. Manteniendo el cable A conectado a masa, probar cul de los tres cables restantes
provoca un paso en sentido horario al ser conectado tambin a tierra. Ese ser el
cable B.
3. Manteniendo el cable A conectado a tierra, probar cul de los dos cables restantes
provoca un paso en sentido antihorario al ser conectado a tierra. Ese ser el cable D.
4. El ltimo cable debera ser el cable C. Para comprobarlo, basta con conectarlo a
tierra, lo que no debera generar movimiento alguno debido a que es la bobina
opuesta a la A.




Contacto:
Nombre: Pedro Snchez
Mail: mrchunckue@gmail.com
Blog: http://electronicayrobotica.wordpress.com/

También podría gustarte