in

Thug lifeThug life Una moneríaUna monería ¡Pero qué c...!¡Pero qué c...! GeekyGeeky

Motores paso a paso

Muchos proyectos, sobre todo los relacionados con la robótica, involucran la utilización de motores paso a paso. Se trata de un tipo muy particular de motor, cuyo funcionamiento difiere sustancialmente de los motores que vemos habitualmente, y cuyos secretos vamos a develar en este artículo. 

Construiremos una controladora para estos motores.

Un motor “paso a paso” (o “PAP”) es un dispositivo electromecánico capaz de convertir  una serie de impulsos eléctricos en desplazamientos angulares discretos. Esto significa que, a diferencia de un motor convencional (que gira de forma continua),  es capaz de avanzar una serie de grados (o pasos) a la vez, dependiendo del estado de sus entradas de control. Un motor paso a paso se comporta de la misma manera que un convertidor digital-analógico y puede ser gobernado por impulsos procedentes de sistemas lógicos, tales como microcontroladores u ordenadores.

Los motores PAP son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos. Existen al menos 3 tipos fundamentales de motores paso a paso: el llamado motor de reluctancia variable, el motor de magnetización permanente, y el motor paso a paso híbrido.

Entre las principales aplicaciones de estos motores se pueden mencionar la robótica en general, la tecnología aeroespacial, el control de discos duros, de discos flexibles (disquetes), unidades de CD-ROM o de DVD e impresoras de todo tipo. Todos estos aparatos, una vez desechados, pueden emplearse como fuente de motores PAP para utilizar en nuestros proyectos.

La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso (90°) y 200 para el segundo caso (1.8°), para completar un giro completo de 360°.

Principio de funcionamiento
Al igual que sus “parientes”, los motores de corriente continua, un motor paso a paso esta constituido por dos partes: una fija, llamada estator; y una móvil, llamada rotor.

El estator esta construida en base de una serie de cavidades en las que se ubican las bobinas. Cuando una corriente eléctrica atraviesa una de estas bobinas, se forman  los polos norte-sur necesarios para impulsar el motor.

El  rotor puede basarse en un imán permanente o un inducido ferromagnético, siempre con el mismo número de pares de polos que el contenido en una sección de la bobina del estator. Todo esto se monta sobre un eje que a su vez se apoya en dos cojinetes que le permiten girar libremente.

Si somos capaces de lograr que las bobinas mencionadas se energicen en el orden y con la frecuencia adecuada, podremos hacer que el motor avance un paso en uno u otro sentid. Para ello, se necesita de un sistema de control adecuado. Y ahí es donde nuevamente podemos hacer uso de un microcontrolador. Con el programa adecuado podemos conseguimos excitar el estator, creando los polos N-S. Al variar dicha excitación, de modo que el campo magnético formado efectúe un movimiento giratorio, el motor seguirá el movimiento de dicho campo, produciéndose de este modo el giro del rotor.

Otra característica no menos importante es que estos motores poseen la habilidad de quedar “enclavados” en una posición determinada. Efectivamente, si una o más de sus bobinas están alimentadas, el motor estará enclavado en la posición correspondiente. Si, por el contrario, no circula corriente por ninguna de sus bobinas, el rotor queda totalmente libre.
 

Este es el circuito eléctrico de la controladora.

Controladora de motores PAP
Uno de los tipos más comunes de motores PAP son los que poseen 5 (o 6) cables. En estos motores, uno de los cables es común a todas las cuatro bobinas, y los otros cuatro son el extremo restante de cada una de ellas. En el caso de tener 6 cables, dos bobinas tienen un cable común, y las otras dos el otro. Si esos dos cables se unen entre si, se obtiene el equivalente a un motor de 5 cables.

La forma de hacer girar uno de estos motores es alimentar las bobinas una a una, en secuencia, de forma que el motor vaya avanzando paso a paso. Para ello hemos creado esta pequeña placa controladora, que debería funcionar sin problemas casi con cualquier motor que podamos sacar de alguno del los equipos que mencionábamos al principio.

El circuito tiene, como ya es costumbre, una etapa destinada a la alimentación basada en un regulador de voltaje integrado. No hay mucho que aclarar sobre su funcionamiento, solo la presencia de un resistor cuyo valor deberemos determinar en caso de que la alimentación sea mayor a los 15 o 20 voltios. Su función es reducir esta tensión a un valor cercano a los 9 o 12V, para permitir al LM7805 realizar su tarea sin esfuerzo.

La tensión de alimentación de esta placa será la que necesite el motor. El microcontrolador que se encargar del control del motor obtendrá los 5V a partir del regulador, independientemente de cual sea la tensión de alimentación (siempre que sea inferior a los 30V).

El microcontrolador no tiene ninguna entrada. Sus pines se han configurado como salidas, y cuatro de ellos se encargan de controlar sendos grupos de dos transistores cada uno, capaces de lidiar con la corriente que consume el motor. Debemos aclarar que hemos utilizado transistores tipo TIP42, que pueden manejar varios amperes cada uno, y que en la mayoría de los casos pueden ser exagerados. Pero de esta manera nos aseguramos que la controladora funcione con casi cualquier motor. Si el usuario va a limitarse a pequeños motores como los de las fotos, puede usar un BD136 / BD138 o BS140, sobre el mismo PCB, sin problemas.

Hemos empleado el oscilador interno del PIC12F675, por lo que hacen falta muy pocos componentes externos para que este microcontrolador funcione. De hecho, y aunque eventualmente podríamos haberlo evitado cambiando la configuración de los “fuses” del micro, solo hemos utilizado un resistor de 10K para mantener el pin RESET en estado alto.

Serigrafía del PCB.

El software
Nuestro programa tiene que ser capaz de energizar las bobinas en el orden adecuado. Utilizando el lenguaje BASIC del PIC SIMULATOR IDE (que puedes aprender a utilizar leyendo nuestro tutorial sobre programación de microcontroladores) resulta muy sencillo.

Comenzamos definiendo los pines del 12F675 como salidas, a la vez que cambiamos sus nombres por “bobina0”… bobina3”. Como el programa de ejemplo contempla la demostración de giros en ambos sentidos y a diferentes velocidades, es que hemos definido una serie de variables cuyo valor inicial determinan como y a que velocidad girará el motor.

Estas variables están comentadas en el código fuente, y los tiempos están expresados en milisegundos. El giro se produce en uno u otro sentido gracias a las sentencias que componente las subrutinas “rotacionder” y “rotacionizq”.

Cada bucle FOR-NEXT se encarga de efectuar 10 pasos en un sentido, y luego de un tiempo, 10 pasos en el sentido contrario. Por supuesto, el lector puede variar estos parámetros para experimentar con el motor.

‘————————————————–
‘NeoTeo – Controladora de motores PAP
‘con PIC12F675    –  Versión 1.01
‘————————————————–
Symbol bobina0 = GPIO.0
Symbol bobina1 = GPIO.1
Symbol bobina2 = GPIO.2
Symbol bobina3 = GPIO.4

AllDigital
TRISIO = %000000  ‘GPIO Todo como salidas

Dim tiempoder As Word  ‘Demora entre energizado de bobinas
Dim tiempoizq As Word  ‘Demora entre energizado de bobinas
Dim tiempo1 As Word  ‘Demora después de girar a un lado
Dim tiempo2 As Word  ‘Demora después de girar al otro lado

Dim i As Word  ‘cantidad de pasos a dar

tiempo1 = 5000  ‘En milisegundos
tiempo2 = 1500  ‘En milisegundos
tiempoder = 50  ‘En milisegundos
tiempoizq = 10  ‘En milisegundos

GPIO = %000000  ‘todas las salidas a 0

loop:  ‘Bucle principal   For i = 1 To 10       Gosub rotacionder   Next i
   WaitMs tiempo1
   For i = 1 To 10       Gosub rotacionizq   Next i
   WaitMs tiempo2

Goto loop

End                                              

rotacionder:   bobina2 = 1   bobina0 = 1   WaitMs tiempoder
   bobina0 = 0   bobina2 = 1   WaitMs tiempoder
   bobina1 = 1   bobina2 = 1   WaitMs tiempoder      bobina2 = 0   bobina1 = 1   WaitMs tiempoder
   bobina3 = 1   bobina1 = 1   WaitMs tiempoder
   bobina1 = 0   bobina3 = 1   WaitMs tiempoder
   bobina0 = 1   bobina3 = 1   WaitMs tiempoder
   bobina3 = 0   bobina0 = 1   WaitMs tiempoder
Return                                           

rotacionizq:   bobina2 = 0   bobina0 = 1   WaitMs tiempoizq
   bobina0 = 1   bobina3 = 1   WaitMs tiempoizq
   bobina0 = 0   bobina3 = 1   WaitMs tiempoizq
   bobina3 = 1   bobina1 = 1   WaitMs tiempoizq
   bobina3 = 0   bobina1 = 1   WaitMs tiempoizq
   bobina1 = 1   bobina2 = 1   WaitMs tiempoizq
   bobina1 = 0   bobina2 = 1   WaitMs tiempoizq
   bobina2 = 1   bobina0 = 1   WaitMs tiempoizq
Return                                           

En un articulo futuro analizaremos con detalle el funcionamiento de los motores PAP de 4 cables, que requieren de dos circuitos conocidos como “puente H” para funcionar.

Reportar

¿Qué te pareció?

Escrito por Ariel Palazzesi

44 Comments

Leave a Reply
  1. Esta muy bueno tu articulo ,mira Ariel yo tengo motores de 4 cables (2 bobinas) y yo programo con picbasicpro para ver si me puedes dar el eqivalente de programa para el mismo procesador muchas gracias y muchos saludos

    • Hola ect00000!

      En breve publicaremos el circuito y el soft para utilizar esos motores. Yo mismo tengo una caja llena de ellos. Quiero hacer unas cuantas pruebas antes de publicar nada, para asegurarme de que todo funciona bien.

      Saludos!

      • hola ariel si me puedes ayudar te lo agradesco quiero hacer un carril con un tope, la idea es dos polea con una correa dentada y un tope el tema esta en la electronica que me ayude seria un teclado numerico con un motor que le ponga la medida (x ) pisar star y se posicione a
        la medida exacta, el tramo del carril es de 0.0 a 3000.0. que componentes nesecito y como puedo montarlo gracias.
        toni

      • hola!!!!!
        nesecito un favor
        miren yo boy empezando estoy en mecatronica
        weno me pidieron acer un driver de mmotor
        ese cto que tienes tu esta perfectopero esta ya en tablilla, pero necesito
        el cto asi para aserlo yo en un proto :))
        pliz si no es mucha molestia

  2. Por favor les agradezco me puedan enviar el software de simulacion PIC SIMULATOR IDE, con el cual se podria simular este montaje. Y si no es mucho pedir el programador de los Pics IC-PROG o MPASM. Gracias !!

  3. esta muy bueno el proyecto ahora yo pregunto sera muy complicado hacer funcionar el pap con un par de interruptores para giro izq i giro derecha?

    • Hola Cesar.
      No, no es complicado. Habria que agregar los pulsadores y modificar el programa. Estaria bueno hacer que si pulsas durante un segundo o dos un pulsador, el motor aumente la velocidad de giro, una especie de "Avance Rápido".
      Como veras, eso es lo bueno de los microcontroladores: son muy flexibles!

      Saludos!
      Ariel.

    • Hola Darx!
      Imprime el diagrama del proyecto, y llevalo a cualquier tienda que venda componentes electrónicos. No tendrás problemas en conseguir nada de lo que hace falta para llevar a cabo este proyecto.
      Saludos.

  4. HOla queria saber que programa utilizaste en este proyecto para realizar los esquemas de circuitos impresos y la serigrafia del pbc, COmo se llama ??? Muchas Gracias

  5. Hola alguien podria explicarme el funcionamiento real de el esquema?? Cuando una señal sale del pic12f675 hacia el transistor npn que sucede???????

  6. Esta muy interesante compadre, ya encontre unos motores que sake de mis impresoras viajas. Podrias hacer un tema con el circuito, los componestes, el soft y si puedes la PCB…. me interesa mucho construir esta tarjeta para controlar los PaP

  7. Hola a todos, ese circuito para el funcionamiento de motores paso a paso es realmente interesante, me gustaría saber los componentes para poder hacer uno, pues he preguntado en varios sitios y no han sabido darme respuesta, todos coinciden en que hace falta un circuito especial, jeje.
    Gracias.

  8. Saludos amigo muy interesante este proyecto yo hice la pcb pero cuando corte y pegue el programa en el basic compiler del ide simulator, me comenzo a dar errores desde la primera linea???, no se que pudo pasar mil gracias

  9. NeoTeo como siempre con sus buenos artículos. Quería hacerles una pregunta. Resulta que estoy usando un motor bastante grande y quiero usar esta tarjeta para controlarlo. Podrían indicarme cuantos Amperios soportan estos transistores? El voltaje mínimo de alimentación para el motor es 5V?

  10. Buenas noches, les agradezco me informen acerca de los materiales necesarios para poner en funcionamiento, además el plano electronico utilizando pulsadores.
    Mil gracias

  11. Hola, excelente artículo.

    Me gustaría saber si con este motor se pueden hacer giros tan pequeños como sea posible o dicho de otra forma, si se pueden hacer "pasos" tan pequeños como se requiera dentro de los límites lógicos del mecanismo. Necesito hacer una plataforma que se desplace por muchos puntos con una precisión alta.

    Saludos y muchas gracias!

  12. Hola a to2. Necesito saber si se puede adaptar la velocidad y grado de giro de los motores pap sea el modelo k sea y cuantos microsegundos debo moverlo para obtener x grados y con cuanto de alimentación mínimo para k funcione, los voy a controlar con PWM. Please me urge la respuesta. Kisses

  13. Hola a todos, he leido este articulo y me a parecido interesante, saben estoy que diseño una maquina, pero tengo un problema lo que pasa eske necesito dar giro a una leva para que esta accione una palanca y la mueva en forma vertical aplicandole una fuerza de 77kgf, ustedes creen ke podria utilizar un motor pap, necesito ke esta leva de solo una recolucion cuando le de un pulso, diganme se puede hacer esto con un motor pap, o su potencia es muy pequeña, cual es la maxima potencia de un motor pap, estare agradecido al ke me ayude gracias.

  14. hol ariel mira yo esoty menjando un microcontrolado MC9S08LC36 y ocupo el codigo para mover un morode pasos yase ade 4 o 6 hilos
    ocupo el codigo para hacer pruebas el software quemanejo es codewarrior simelopuedes envar para hoy o manana teloagradecria porque laproxima sena tengoque entregar un trbajo relacionado con eso yme bendriade ayuda el codigo para hacer pruebas simeloenvias emicorreo perfecto es valdi_boy@hotmail.com gracias

  15. bueno nesesito ayuda. quiero controlar 2 motores paso paso por puerto serial, no se si me pueden pasar un circuito de control
    gracias

  16. estimado
    hevisto este dispositivo controlador de motores pap de 5 o 6 hilos me interesaria el circuito electronico para poder probarlo desde ya muchas gracias
    y un saludo desde buenos aires

  17. Acabo de leer este interesante articulo sobre motores PAP.Quisiera saber si alguien me puede indicar como hacer que un motor PAP gire,y simplemente gire, en un sentido o en el otro,construyendo un simple circuito.Sí advierto que no estoy muy puesto al día en estos temas,por lo que si se puede quisiera que lo se me indique sea a nivel básico.Muchas gracias.

  18. me gustaria saber como podriamos hacer un controlador de motores paso a paso usando el uln2003, ademas de que si puedieses tener el diagrama del controlador que tu presentas.

  19. holaaaa alguien me puede decir o dar una idea como hacer un proyecto de electronica con motores steper que no salga muy caro ayudemen porfavor es un trabaj0 de estudio,,

  20. hola que tal, esta controladora la puedo usar para poder controlar en ambas direcciones?
    o para ello tengo que hacer directamente en un "puente H" o puedo usar este y agregarle el puente? y si si, ¿que conexiones tendré que hacer?

    disculpa mi ignorancia y saludos

  21. Hola,hace unos días vi el circuito, me gustó y compré los componentes,
    pero ahora no puedo acceder mas a la parte 2 y 3 del artículo, me retorna siempre a la primera parte, por qué?. Estaré muy agradecido
    si lo solucionan (en caso de que el sea problema sea el servidor no mío)
    Muchas Gracias. Saludos

  22. perdoneme la molestia no tengo tanta experiencia con este tipo de motores sera que tienen buena rpm para aser un estractor de aire para unos amplificadores de audio los quiero usar por que no asen ruido

  23. Que tal es muy interesante hacer un motopr paso a paso, me podrias pasar una lista de los componentes que se nececitan me faltan algunos y no se sus nombres como por ejemplo los diodos de cuales???

    saludos

  24. hola que tal bonito proyecto excelente no se si podrias subir el codigo compilado a hexadecimal muchisimas grasias

Responder a javi Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Cómo agregar música en WinMUGEN

Trucos GTA IV