Cómo controlar un motor paso a paso con el driver A4988 de Pololu y Arduino (Previsualizar)

Controlar motores paso a paso con Pololu A4988 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.

Ventajas

  • 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.

Inconvenientes

  • 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.

  • Motor paso a paso Nema 17 con conector y cable
    Motor paso a paso Nema 17 con conector y cable
    Añadir al carrito
    Vista rápida
    14,80  (12,23  excl. IVA)
    En tienda

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.

  • Driver Pololu A4988 Black para motores paso a paso (Pines soldados)
    Driver Pololu A4988 Black para motores paso a paso (Pines soldados)
    Añadir al carrito
    Vista rápida
    8,60  (7,11  excl. IVA)
    Esperando unidades
  • Driver Pololu A4988 para motores paso a paso
    Driver Pololu A4988 para motores paso a paso
    Añadir al carrito
    Vista rápida
    5,60  (4,63  excl. IVA)
    En tienda
  • Driver Pololu A4988 Black para motores paso a paso
    Driver Pololu A4988 Black para motores paso a paso
    Añadir al carrito
    Vista rápida
    7,30  (6,03  excl. IVA)
    En tienda
  • Driver Pololu A4988 para motores paso a paso (Pines soldados)
    Driver Pololu A4988 para motores paso a paso (Pines soldados)
    Añadir al carrito
    Vista rápida
    7,30  (6,03  excl. IVA)
    En tienda
  • Driver Pololu DRV8825 para motores paso a paso
    Driver Pololu DRV8825 para motores paso a paso
    Añadir al carrito
    Vista rápida
    9,50  (7,85  excl. IVA)
    En tienda
  • Driver Pololu DRV8825 para motores paso a paso (Pines soldados)
    Driver Pololu DRV8825 para motores paso a paso (Pines soldados)
    Añadir al carrito
    Vista rápida
    10,90  (9,01  excl. IVA)
    En tienda

¿Qué necesitas conocer del controlador de motores A4988 de Pololu?

Las características principales de este controlador A4988 de Pololu son:

  • Fácil control del paso y la dirección
  • 5 resoluciones de pasos diferentes: 1, 1/2, 1/4, 1/8 o 1/16 pasos
  • Límite de corriente ajustable, que te permite establecer la máxima corriente de salida con un potenciómetro, pudiendo usar voltajes por encima del voltaje nominal de tu motor paso a paso, consiguiendo así tasas de pasos más altas
  • 35 V de voltaje máximo
  • Funciona con microcontroladores de 3.3 V y 5 V
  • Desconexión automática ante temperaturas altas y sobrecarga
  • Protección ante cortocircuitos
  • PCB de 4 capas, 56.7g de cobre PCB (mejora la disipación del calor) y un pad GND expuesto bajo el integrado

¿Qué significan cada uno de sus pines?

El controlador de motores paso a paso A4988 de Pololu tiene un total de 16 pines. ¡Veamos para qué sirven cada uno de ellos!

Driver de motores A4988 de Pololu pines

ENABLEActiva/desactiva las salidas al motor
MS1, MS2, MS3Determinan la resolución del paso del motor
RESETRESET
SLEEPSLEEP
STEPControla el paso del motor
DIRControla la dirección del motor
VMOTAlimentación del motor (de 8V a 35V)
2B, 2A, 1A, 1BPines para el conector del motor
VDDAlimentación de la lógica del motor (3.3V o 5V)
GNDGND

¿Quieres saber cómo controlar un motor paso a paso con Arduino? ¡Vamos!

¿Qué vamos a usar?

  • 20 Cables Jumper para prototipar hembra-hembra
    20 Cables Jumper para prototipar macho-hembra
    Seleccionar opciones
    Vista rápida
    3,00  (2,48  excl. IVA)
    En tienda
  • Breadboard 400 puntos para prototipar
    Breadboard 400 puntos para prototipar
    Añadir al carrito
    Vista rápida
    3,50  (2,89  excl. IVA)
    En tienda
  • Driver Pololu A4988 para motores paso a paso
    Driver Pololu A4988 para motores paso a paso
    Añadir al carrito
    Vista rápida
    5,60  (4,63  excl. IVA)
    En tienda
  • Agotado
    Genuino UNO Rev. 3
    Genuino UNO Rev. 3
    Leer más
    Vista rápida
    25,00  (20,66  excl. IVA)
    Temporalmente no disponible
  • Motor paso a paso Nema 17 con conector y cable
    Motor paso a paso Nema 17 con conector y cable
    Añadir al carrito
    Vista rápida
    14,80  (12,23  excl. IVA)
    En tienda

¿Lo tienes todo? ¡Empezamos!

Esquema de conexión

Lo vemos paso a paso:

1. Conectamos la breadboard a Arduino. Llevamos un cable (rojo) desde 5V a la fila roja de la breadboard y un cable (negro) desde GND a la fila azul.

arduino y breadboard

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.

Arduino, breadboard y driver A4988 de Pololu

 

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.

Arduino, breadboard y driver A4988 de Pololu

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.

conexion-motor-paso-a-paso-driver-A4988-Arduino-1

 

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.

alimentacion del motor paso a paso con el driver A4988 y Arduino

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.

MS1MS2MS3Resolución del micropaso
LOWLOWLOW1 paso
HIGHLOWLOW1/2 paso
LOWHIGHLOW1/4 paso
HIGHHIGHLOW1/8 paso
HIGHHIGHHIGH1/16 paso

Aquí tenemos dos alternativas:

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).

configuracion de la resolucion de los pasos del motor paso a paso con el driver A4988 y Arduino

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.

configuracion de la resolucion de los pasos del motor paso a paso con el driver A4988 y Arduino 1/8

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.

conexion-motor-paso-a-paso-driver-A4988-Arduino-stepper

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.

conexion-motor-paso-a-paso-driver-A4988-Arduino-direccion¡Ya está todo conectado! ¡Vamos a darle vida al motor!

Programación en Arduino IDE

 

Volver a: Servos y motores

©2017 Fábrica Digital desde Jerez de la Frontera, España.

717 717 452 (Teléfono y Whatsapp) / hola@fabricadigital.org

De Lunes a Jueves de 09:00 a 18:00. Viernes de 09:00 a 14:00.

Calle del Comercio, 18, 11407 Jerez de la Frontera, Cádiz. - Cómo llegar

Información Legal - Aceptamos

 

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account