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.
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.
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.
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.
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!
gracias Ariel esta interesante tu articulo lo estare esperando muchos 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
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 !!
#4 HAS PROBADO CON PROTEUS??
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.
los componentes a utilizar en el proyecto como se llaman cada uno y como los puedo conseguir porfa
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.
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
Hola alguien podria explicarme el funcionamiento real de el esquema?? Cuando una señal sale del pic12f675 hacia el transistor npn que sucede???????
me gusto la expocion. ahora me gustaria saber si me pueden ayudar a conseguir un motor y su tablilla de control…
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
hola todos.
les agradeco por la informacion compartida.
quisiera saber mas sobre como hacer funcionar motores paso a paso
he hecho muchos circuitos y ningunos me ha dado resultado
gracias.
raoulvc2006@gmail.com
Hola!
Hace este…funciona perfectamente. Lo tenemos en uso en NeoTeo desde hace algunos meses, y funciona muy bien.
Saludos.
no seria mas simple en ves de usar un micro usar un contador johnson como el 4017 y un buen astable regulable como el que se hase con el 555?
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.
HOLA MUCHACHOS, NECESITO UN CIRCUITO PARA PONER A FUNCIONAR DOS BRAZOS DE UN MANIQUI CON MOTORES PASO A PASO.
GRACIAS
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
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?
Buenas noches, les agradezco me informen acerca de los materiales necesarios para poner en funcionamiento, además el plano electronico utilizando pulsadores.
Mil gracias
todos los proyectos son muy interezantes les felicito grandemente.
RAL
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!
quisiera saber en que yo podria implementar un motor paso a paso hibrido
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
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.
ola me podrias mencionar los componentes que se necesitan gracias
urge!!
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
bueno nesesito ayuda. quiero controlar 2 motores paso paso por puerto serial, no se si me pueden pasar un circuito de control
gracias
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
hola
tienen algun circuito de controladores de motor pap pero sin necesidad de la pc
desde ya gracias
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.
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.
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,,
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
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
Alguien me puede ayudar con proyectos de motores paso a paso que sean basicos
me gustaria sever como se determina el angulode avance por fase segun el numero de pasos
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
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
hola que tal bonito proyecto excelente no se si podrias subir el codigo compilado a hexadecimal muchisimas grasias
hol atodos no se si alguien podria subir el codigo compilado en programcion estoy en nada interesante el driver de motor
grasias