control de motor paso a paso con pic16f84a _ electrónica & robótica

6
28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica 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 prácticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestros Microcontroladores PIC, en esta ocasión será el control de un motor a pasos unipolar. Además es una pequeña demostración 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 también su oscilador a 4MHz con sus respectivos capacitores de 22pF, tiene su botón 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 alimentación 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 conexión interna. Este tipo se caracteriza por ser más simple de controlar por esta razón 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 activación 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 programación.

Upload: saba-barria-fernandez

Post on 27-Dec-2015

127 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control de Motor Paso a Paso Con Pic16f84a _ Electrónica & Robótica

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica

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 prácticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestrosMicrocontroladores PIC, en esta ocasión será el control de un motor a pasos unipolar. Además es una

pequeña demostración de la gran cantidad de formas en las cuales podemos utilizar el ya conocidoPIC16F84A.

El circuito es sencillo consta de un motor paso a paso dos pulsadores para hacerlo girar en ambasdirecciones (izquierda o derecha) conectados al puerto A del PIC con sus debidas resistencias y también

su oscilador a 4MHz con sus respectivos capacitores de 22pF, tiene su botón 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 alimentación 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 conexión interna. Este tipo se caracteriza porser más simple de controlar por esta razón 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. Lasentradas de activación 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 programación.

Page 2: Control de Motor Paso a Paso Con Pic16f84a _ Electrónica & Robótica

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica

electronicayrobotica.wordpress.com/2013/02/02/control-de-motor-paso-a-paso-con-pic16f84a/ 2/6

MATERIAL:

1 PIC16F84A1 ULN2803

1 Motor a pasos unipolar (5 o 6 cables)3 Pulsadores3 Resistores de 330Ω a 1/2 W

1 Cristal de cuarzo de 4MHz2 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 continuación.

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 demanera inversa.

Secuencia Normal: Esta es la secuencia más 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 bobinasactivadas, se obtiene un alto torque de paso y de retención.

(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 algunosmotores esto brinda un funcionamiento más suave. Pero al estar solo una bobina activada, el torque depaso y retención es menor.

Page 3: Control de Motor Paso a Paso Con Pic16f84a _ Electrónica & Robótica

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica

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 movimientoigual 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 combinación 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 enel puerto B es LOOKUP. Los valores dentro de LOOKUP pueden ser en forma hexadecimal para elloel compilador requiere que se utilice el símbolo “$”, si se quisiera utilizar los números en binario se debede agregar el “%” y para los decimales solo basta escribir el numero tal y como es, estas tresposibilidades deben de ir separadas por comas. Nosotros utilizaremos decimales.

El código en Basic para este circuito es el siguiente:

1234567891011121314

TRISA = 1TRISB = 0DIGITO var BytePORTB = 0INICIO: If PORTA = 1 Then For digito = 0 To 4LookUp 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

Page 4: Control de Motor Paso a Paso Con Pic16f84a _ Electrónica & Robótica

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica

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 código que haga que el motor funcione.

La instrucción LOOKUP va mostrar una variable DIGITO en el puerto B y se tiene la siguientesintaxis:

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 variabledespués de mostrarse se incrementa en uno, después de le coloca un retardo para dar tiempo entre pasoy 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 utilizala secuencia de 8 paso se debe de incrementar a 8 y de debe de modificar los valores dentro de lainstrucción LOOKUP.

Vídeo del circuito en acción.

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 distribución de los cables a los bobinados y el común siguiendo lasinstrucciones siguientes:

Identificando el común: Por lo regular los motores con 6 cables tienes dos cables para el común y

generalmente son del mismo color (Negro), recomiendo unirlos para no confundirse en un futuro, parael caso de tener uno de 5 cables también aplica lo del color Negro.

Identificando los cables de las bobinas (A, B, C y D): Aplicar un voltaje al cable común se puede

usar 5V y manteniendo uno de los otros cables a tierra (GND) mientras vamos poniendo a tierra cadauno de los demás cables de forma alternada y observando los resultados. La nomenclatura de los cables

1516171819

pause 150 Next digito Endifgoto inicioend

Page 5: Control de Motor Paso a Paso Con Pic16f84a _ Electrónica & Robótica

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica

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 cuál de los tres cables restantes provoca un paso

en sentido horario al ser conectado también a tierra. Ese será el cable B.3. Manteniendo el cable A conectado a tierra, probar cuál 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 debería ser el cable C. Para comprobarlo, basta con conectarlo a tierra, lo que no

debería 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 chácharas, cosas eléctricas y electrónicas, ademásde un gusto por el ajedrez. Casado con la electrónica pero amante de la robótica...

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 steppermotor, Electrónica y Robótica, microchip, motor a pasos, motor a pasos con pic16f84a, motor paso a

About these ads (http://en.wordpress.com/about-

these-ads/)

Page 6: Control de Motor Paso a Paso Con Pic16f84a _ Electrónica & Robótica

28/05/13 CONTROL DE MOTOR PASO A PASO CON PIC16F84A | Electrónica & Robótica

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, programación de pics en

basic, stepper motor, stepper motor control with pic, stepper motor with pic, stepper motor withPIC16F84A. 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

iCalificar

solo esta en basic si descargas el ejemplo y compilas te generara un archivo asm

Blog de WordPress.com. Tema Mystique por digitalnature.