Вы находитесь на странице: 1из 6

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrnica & Robtica

electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 1/6
Publicado por MrChunckuee
CONTROL DE MOTOR PASO A PASO
CON PIC16F84A
FEB 2
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.
(http://electronicayrobotica.files.wordpress.com/2013/02/control-de-motor-paso-a-paso-con-
pic16f84a.jpg)
Dejo la lista de material para poder realizar este ejemplo y seguir aprendiendo de la programacin.
28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrnica & Robtica
electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 2/6
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.
(http://electronicayrobotica.files.wordpress.com/2013/02/motor-a-pasos-sentencia-normal.jpg)
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.
28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrnica & Robtica
electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 3/6
(http://electronicayrobotica.files.wordpress.com/2013/02/motor-a-pasos-sentencia-wave-drive.jpg)
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.
(http://electronicayrobotica.files.wordpress.com/2013/02/motor-a-pasos-sentencia-medio-paso.jpg)
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TRISA = 1
TRISB = 0
DIGITO var Byte
PORTB = 0
INICIO:
If PORTA = 1 Then
For digito = 0 To 4
LookUp digito, [1, 2, 4, 8], PORTB
pause 150
Next digito
Endif
If PORTA = 2 Then
For digito = 0 To 4
LookUp digito, [8, 4, 2, 1], PORTB
28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrnica & Robtica
electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 4/6
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.
Vdeo del circuito en accin.
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
15
16
17
18
19
pause 150
Next digito
Endif
goto inicio
end
28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrnica & Robtica
electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 5/6
(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.
Si gustas el codigo y el circuito en proteus 7.7 puedes hacerlo desde aqui:
(http://www.4shared.com/rar/gP8Zl2-V/CONTROL_DE_MOTOR_PASO_A_PASO_C.html)
.
Acerca de MrChunckuee
Soy una persona que le gusta destruir y experimentar con chcharas, cosas elctricas y electrnicas, adems
de un gusto por el ajedrez. Casado con la electrnica pero amante de la robtica...
Ver todas las entradas de MrChunckuee
Publicado el 02/02/2013 en Microchip, Microcontroladores PIC, PICs en Basic y etiquetado en basic
programming in pics, control de motor a pasos, control de motor a pasos con pic, control stepper
motor, Electrnica y Robtica, microchip, motor a pasos, motor a pasos con pic16f84a, motor paso a
About these ads (http://en.wordpress.com/about-
these-ads/)
28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrnica & Robtica
electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 6/6
paso con pic, MrChunckuee, pic16f84, pic16f84a, pics en basic, pics in basic, programacin de pics en
basic, stepper motor, stepper motor control with pic, stepper motor with pic, stepper motor with
PIC16F84A. Guarda el enlace permanente. 2 comentarios.
Dejar un comentario
Gerardo Alexander Soto Zambrano | 23/05/2013 en 2:48 AM

1

0

i
Calificar
oye puedes publicar la programacion del pic la que es .asm por favor te lo agradeceria mucho
gracias
MrChunckuee | 23/05/2013 en 10:00 PM

0

0

i
Calificar
solo esta en basic si descargas el ejemplo y compilas te generara un archivo asm
Blog de WordPress.com. Tema Mystique por digitalnature.

Вам также может понравиться