oferta

sábado, 27 de marzo de 2010

CONTROL MOTOR PASO A PASO CON PIC


UN POCO DE TEORIA

Los motores paso a paso son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos. En este capítulo trataremos solamente los motores P-P del tipo de imán permanente, ya que estos son los mas usados en robótica.

Principio de funcionamiento

Básicamente estos motores están constituidos normalmente por un rotor sobre el que van aplicados distintos imanes permanentes y por un cierto número de bobinas excitadoras bobinadas en su estator.
Las bobinas son parte del estator y el rotor es un imán permanente. Toda la conmutación (o excitación de las bobinas) deber ser externamente manejada por un controlador.
Existen dos tipos de motores paso a paso de imán permanente:

Motor bipolar. tiene generalmente cuatro cables de salida (ver figura 1). Necesitan ciertos trucos para ser controlados, debido a que requieren del cambio de dirección del flujo de corriente a través de las bobinas en la secuencia apropiada para realizar un movimiento.
En figura 3 podemos apreciar un ejemplo de control de estos motores mediante el uso de un puente en H (H-Bridge). Como se aprecia, será necesario un H-Bridge por cada bobina del motor, es decir que para controlar un motor Paso a Paso de 4 cables (dos bobinas), necesitaremos usar dos H-Bridges iguales al de la figura 3 . El circuito de la figura 3 es a modo ilustrativo y no corresponde con exactitud a un H-Bridge. En general es recomendable el uso de H-Bridge integrados como son los casos del L293 .


Motor unipolar.- Estos motores suelen tener 6 o 5 cables de salida, dependiendo de su conexionado interno (ver figura 2). Este tipo se caracteriza por ser más simple de controlar.





figura2


Identificacion de bobinas en motores unipolares
  • Seleccionar un cable y conectarlo a masa. Ese será llamado cable A.
  • Manteniendo el cable A conectado a masa, probar cuál de los tres cables restantes provoca un paso en sentido antihorario al ser conectado también a masa. Ese será el cable B.
  • Manteniendo el cable A conectado a masa, probar cuál de los dos cables restantes provoca un paso en sentido horario al ser conectado a masa. Ese será el cable D.
  • El último cable debería ser el cable C. Para comprobarlo, basta con conectarlo a masa, lo que no debería generar movimiento alguno debido a que es la bobina opuesta a la A.
Secuencias para manejar motores paso a paso unipolares

A continuación se puede ver la tabla con la secuencia necesaria para controlar motores paso a paso del tipo unipolares
Primera secuencia de pasos para motores PAP

















Segunda secuencia de pasos para motores PAP




























CONTROL DE UN MOTOR UNIPOLAR (en un solo sentido)
En la figura podemos apreciar un ejemplo de conexionado para controlar un motor paso a paso unipolar mediante el uso de un ULN2803 el cual es una array de 8 tansistores tipo Darlington capaces de manejar cargas de hasta 500mA. Las entradas de activación (Activa A, B , C y D) se conectan al puerto B del pic16f84A , pin6=A, pin7=B, pin8=C y pin9=D respectivamente

LIST P=16F84A
;DECLARACION REGISTROS A USAR
status equ 0x03
portb equ 0x06
trisb equ 0x86
reg1 equ 0x0c                  ;registro usado para el retardo
reg2 equ 0x0d                  ;registro usado para el retardo
;CONFIGURACION PUERTO B COMO SALIDA
org    0x00                       ;origen del programa
bsf status,5                       ;vamos al banco1 de la memoria RAM
clrf trisb                            ;puerto queda configurado como salida
bcf status,5                       ;regresamos al banco0 de la memoria RAM
;PROGRAMA PRINCIPAL
inicio movlw b'00001000'    ;cargamos W con b'00001000'
movwf portb                         ;mandamos lo que hay en W al puerto B
call retardo                            ;hacemos una pausa
movlw b'00000100'
movwf portb
call retardo
movlw b'000000010'
movwf portb
call retardo
movlw b'00000001'
movwf portb
call retardo
goto inicio
retardo
MOVLW 0x90                   ;cargamos (w) con el hexadecimal 90
MOVWF reg1                    ;mover lo que hay en W al registro1
MOVLW 0x90                   ;cargamos (w) con hexadecimal 90
MOVWF reg2                    ;mover que hay en W al registro2
uno DECFSZ reg1,1           ;Decrementa registro1 y el resultado guardalo en el mismo
GOTO uno
dos DECFSZ reg2,1           ;decrementa registro2 y el resultado guardalo en el mismo
GOTO dos
RETURN                            ;retorna de donde lo llamaron
end                                      ;Fin del programita

Aqui tienen el archivo HEX. probado:
http://www.4shared.com/file/41AN3W3e/motorunipolar.html


EXPLICACION DEL PROGRAMA
Vamos hacer uso de la primera secuencia de pasos para controlar el motor PAP en un solo sentido, fijese que son 4 pasos para que complete una secuencia, por lo que podemos repetir estos 4 pasos con una etiqueta inicio e indicar que todo se repite con GOTO inicio.
con MOVLW b'00001000' guardamos la primera secuencia de paso en el registro auxiliar W y luego con MOVWF portb enviamos al puerto B la secuencia guardada en W anteriormente, en este momento se encendera solo el pin9 del puerto B y los restantes pines estaran apagados y finalmente con CALL retardo hacemos una pausa para poder visualizar el encendido


Las tres instruccciones siguientes hacen lo mismo ejecuntando el paso 2 para motores PAP (ver tabla de pasos) y solo encendera el pin8 del pic, y asi las 3 instrucciones siguientes ejecutan el paso3 y encendera el pin7 del pic, ylas 3 ultimas instrucciones ejecutan el paso4 y encendera el pin6 del pic.
Para que todo este proceso se repita solo colocamos una etiqueta inicio y hacemos bucle con GOTO inicio.


16 comentarios:

  1. podrias publicar algo parecido al control de una puerta de garaje, porfis mi email es marisolvt2@hotmail.com gracias

    ResponderEliminar
  2. en este foro se habla de un proyecto de:
    10 pulsos RB0.0 enciende un led usando el comando WRITE
    http://todopic.mforos.com/8826/4180638-contar-10-pulsos-y-encender-led/

    ResponderEliminar
  3. Gracias por la informacion.
    Soy principiante necesito que el programa asm controle ambos sentidos de giros.
    por activacion de pulsos en entradas del pic.
    Estimado si tiene algo para publicar o enviar se agradece mail carlos.aguirre@ncr.com

    ResponderEliminar
  4. Hola me pudieran decir un circuito para ser una mesa giratoria con el pic porfas se lo agradeceria mucho grax

    ResponderEliminar
  5. Hola necesito controlar 2 motores paso a paso bipolares a control remoto alguien tiene un circuito que me ayude gracias

    ResponderEliminar
  6. con este software de control remoto active un motor pap , pero se puede activar mas de 2 usando 2 pics. un pic para el control y el otro para los motores pap
    http://www.4shared.com/file/qF6QYgRK/Sony.html

    ResponderEliminar
  7. hola, necesito controlar 3 motores a pasos con un pic18f4550, alguien puede ayudarme con la programación, estoy usando pic c compiler PCW.

    keneer12@hotmail.com

    ResponderEliminar
  8. I'm wondering which blogging and site-building
    platform you are running? I'm new to running a
    blog and have been thinking about using the Tripod
    platform. Do you think this is a
    good platform to start with? I would be extremely
    grateful if I could ask you some questions through email so I can learn a bit
    more before getting started. When you have some free time, please contact me at:
    jeremy.logue@yahoo.com.
    Appreciate it

    Also visit my weblog: My Site

    ResponderEliminar
  9. I'm wondering which blogging and site-building
    platform you are running? I'm new to running a
    blog and have been thinking about using the Tripod platform.

    Do you think this is a
    good platform to start with? I would be extremely
    grateful if I could ask you some questions through email so I can learn a bit
    more before getting started. When you have some free time, please contact me at:
    jeremy.logue@yahoo.com.
    Appreciate it

    Stop by my web site: My Site
    my site - Go to my website

    ResponderEliminar
    Respuestas
    1. Hola , sobre plataforma de blogs se muy poco, yo uso este plataforma por que es gratis mi tema es la electronica con microcontroladores, gracias.

      Eliminar
  10. ¿y donde esta el control del motor pap bipolar?

    ResponderEliminar
  11. muy pronto cuando tenga tiempo lo publico.

    ResponderEliminar
  12. si deseo controlar la velocidad de MPaP y sie s posible en ambos sentidos

    ResponderEliminar
  13. tengo elprograma pero en css quisiera pasarlo alenguaje assembler podrias ayudarme en eso?

    ResponderEliminar
  14. Me gustaria ayudar a todos pero no tengo tiempo, es mas ya no entro mucho a internet, cosas de la vida

    ResponderEliminar