Source: https://fabricadigital.org/leccion/como-controlar-un-motor-paso-a-paso-con-el-driver-a4988-de-pololu-y-arduino/
Timestamp: 2017-10-21 12:06:32+00:00

Document:
Cómo controlar un motor paso a paso con el driver A4988 de Pololu y Arduino – Fábrica Digital
Cómo controlar un motor paso a paso con el driver A4988 de Pololu y Arduino (Previsualizar)
Página de inicio Lecciones Cómo controlar un motor paso a paso con el driver A4988 de Pololu y Arduino
Los motores paso a paso son, como indica su nombre, motores que se mueven dando pasos concretos. Tienen varias bobinas que están organizadas en grupos, a los que se llaman “fases”. Para alimentar cada “fase” de manera secuencial, el motor rotará paso a paso. Con un Arduino podemos conseguir controlar de forma muy precisa la posición y/o la velocidad. Este es el principal motivo por el que los motores paso a paso son el componente ideal para proyectos en los que se requiere un control preciso del movimiento.
Este vídeo de learnengineering nos explica detalladamente cómo funciona un motor paso a paso (subtítulos disponibles):
Son muchos los proyectos que contienen motores paso a paso, manejarlos desde Arduino nos permite tener un control preciso de cada movimiento. Existen motores paso a paso de diferentes tamaños, formas y características eléctricas. ¿Cómo elegimos el que mejor se adapta a nuestro proyecto? Veamos cuáles son las ventajas e inconvenientes de los motores paso a paso.
Posición: Los motores paso a paso se mueven en pasos precisos y repetidos, lo que los hace fundamentales para aplicaciones que requieren posiciones muy precisas, como es el caso de las impresoras 3D, CNC o Plotters.
Control de la velocidad: que los movimientos del motor sean paso a paso también nos permite tener un control excelente de la velocidad angular, lo que hace que sean comúnmente usados en automatismos y robótica.
Torque a velocidades bajas: los motores DC no tienen demasiado torque a velocidades bajas. Por su parte, un motor paso a paso tienen su torque máximo a bajas velocidades, por lo que son una buena elección en proyectos que tengan como requisitos velocidad baja y precisión alta.
Baja eficiencia: A diferencia de los motores DC, la corriente que consumen los motores paso a paso es independiente de la carga. Estos motores consumen la mayor parte de la corriente estando parados, de ahí que tiendan a calentarse.
Torque limitado en altas velocidades: En general, los motores paso a paso tienen menos torque a altas que a bajas velocidades. No obstante, se puede optimizar el rendimiento a velocidades altas, para ello necesitaremos emparejar nuestro motor paso a paso con un controlador adecuado.
No nos devuelve feedback: A diferencia de los servos, los motores paso a paso no nos muestran cuál es su posición exacta en cada momento. Aunque se puede conseguir una muy buena precisión dando una “vuelta de reconocimiento”. Limitar los cambios o hacer “home” son unas de las formas más comunes de guardar o establecer una posición de referencia.
Para hacer este tutorial voy a usar un motor paso a paso Nema 17, comúnmente usado en maquinarias que necesitan de una alta precisión de la posición, como es la CNC o la impresora 3D.
Controlar un motor paso a paso con Arduino es un poco más difícil que controlar un motor DC. Los motores paso a paso necesitan un controlador específico para alimentar las “fases” de forma secuencial y hacer que el motor se mueva.
Es habitual encontrarse proyectos que usan el controlador A4988 de Pololu, que es el que usamos en este tutorial. También puedes encontrar su versión mejorada A4988 Black y el súper controlador de Pololu DRV8825.
Pololu DRV8825 para motores paso a paso (Pines soldados)
10,90 € (9,01 € excl. IVA)
¿Qué necesitas conocer del controlador de motores A4988 de Pololu?
Las características principales de este controlador A4988 de Pololu son:
El controlador de motores paso a paso A4988 de Pololu tiene un total de 16 pines. ¡Veamos para qué sirven cada uno de ellos!
ENABLE Activa/desactiva las salidas al motor
MS1, MS2, MS3 Determinan la resolución del paso del motor
STEP Controla el paso del motor
DIR Controla la dirección del motor
VMOT Alimentación del motor (de 8V a 35V)
2B, 2A, 1A, 1B Pines para el conector del motor
VDD Alimentación de la lógica del motor (3.3V o 5V)
¿Quieres saber cómo controlar un motor paso a paso con Arduino? ¡Vamos!
2. Colocamos el controlador A4988 de Pololu en la breadboard. Con el fin de evitar conexiones indeseadas, lo pinchamos en el centro de la breadboard, yo he puesto el potenciómetro hacia la izquierda.
3. Alimentamos el controlador A4988 con Arduino. Llevamos un cable (naranja) desde la fila roja de la breadboard hasta el pin VDD del driver y un cable (azul) desde la fila azul de la breadboard al pin GND del chip.
4. Conectamos el motor. Conectamos cada uno de sus cables a los 4 pines de salida 2B, 2A, 1A, 1B. No importa cómo lo conectes, lo único que cambia es el sentido del giro del motor Nema 17.
5. Alimentamos el motor. Para alimentar el motor vamos a usar una fuente independiente. ¡No podemos alimentar el motor con los 5V de Arduino! ¿Por qué? Porque el regulador de nuestra placa Arduino UNO entrega hasta 800mA, por lo que al conectar el motor Nema 17 estaríamos exigiéndole demasiado.
Vamos a usar pilas AA en un portapilas de 8 pilas (12V) que conectamos el cable negro a GND y el cable rojo al pin VMOT del driver A4988 de Pololu. ¡No conectes y desconectes el motor cuando lo estés alimentando, puedes destruir el controlador de motores!
Los controladores de motores necesitan ser “calibrados” para limitar la corriente que pasa por las bobinas del motor y así no dañar ni el motor, ni el controlador. Si no lo has hecho ya, realiza el tutorial Cómo calibrar el controlador de motores paso a paso y vuelve a este punto cuando lo hayas hecho.
6. Para controlar la resolución del paso del motor con el driver A4988, necesitamos configurar los pines MS1, MS2 y MS3. En la siguiente tabla vemos en qué posición (high/low) hay que poner cada uno de los pines según la resolución del paso que necesitemos en nuestro proyecto.
a. Conectar MS1, MS2 y MS3 a tres pines digitales de nuestro Arduino y programarlos según la resolución del paso que hayamos decidido.
b. Conectar MS1, MS2 y MS3 a 5V y GND de Arduino según la resolución del paso decidida. En mi opinión, esta opción me parece más interesante puesto que, por lo general, no vamos a querer modificar el paso, así pues si podemos dejarlo fijo y, además, no ocupar pines de nuestro Arduino sin necesidad.
Por ejemplo, si queremos una resolución de 1/2 paso, conectamos MS1 a 5V (cable amarillo) y, MS2 y MS3 a GND (cables verde y marrón, respectivamente).
Si lo que queremos es una resolución de 1/8 pasos conectamos MS1 (cable amarillo) y MS2 (cable rosa) a 5V y MS3 (cable marrón) a GND.
7. Para controlar el paso del motor Nema 17 con el driver A4988 de Pololu, conectamos el pin STEP del driver A4988 de Pololu con un pin digital de Arduino, yo lo he conectado al pin 10.
8. Para controlar la dirección del motor Nema 17 con el driver A4988 de Pololu, conectamos el pin DIR del driver A4988 de Pololu con un pin digital de Arduino, yo lo he conectado al pin 12.
¡Ya está todo conectado! ¡Vamos a darle vida al motor!
Cómo controlar un motor DC con el driver 754410/L293D
Cómo calibrar el controlador de motores paso a paso

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución