Descripción
El A4988 driver para motor a pasos cuenta con ajuste de corriente, protección de sobre-corriente y sobre temperatura y 16 resoluciones de “micro-stepping” para lograr hasta 1/16 de paso. Opera en un rango de 8 a 35 volts y puede entregas hasta 1A por fase sin la necesidad de utilizar un disipador de calor o sistema de ventilación forzado. Se pueden lograr corrientes de hasta 2A utilizando disipadores de calor y ventiladores.
Este producto es una tarjeta que porta el A4988 de Allegro Semiconductor, por lo que recomendamos encarecidamente a nuestros clientes leer la hoja de datos correspondiente al componente principal para entender su funcionamiento y limitantes del módulo. El driver para motor a pasos A4988 resulta ideal para manejar motores a pasos bipolares de hasta 2 amperes por bobina de una manera sencilla mediante los pines digitales de un microcontrolador, siendo su principal aplicación maquinas CNC, impresoras 3D y robots.
Este módulo es compatible con las tarjetas shield de arduino CNC shield GRBL y shield RAMPS para impresora 3D en donde puede usarse de forma intercambiable junto con el módulo DRV8825 que soporta más corriente y puede usarse con motores más grandes que este.
El módulo A4988 tambien puede usarse directamente en el protoboard, tablilla perforada o bien en nuestra propia placa perforada realizada a medida. Al mantener el driver de los motores en un módulo podemos cambiarlo fácilmente en caso de que este sufra algún desperfecto.
Características y especificaciones
- Voltaje de operación del motor: 8 a 35 VDC
- Voltaje de operación lógico: 3 a 5 VDC
- Máxima corriente por fase: 2 A
- Resolución de micro-stepping: 1/2, 1/4, 1/8 y 1/16
- Interfaz: pines STEP y DIRECTION
- Control de corriente ajustable mediante un potenciómetro en el módulo
- Protección por sobre-temperatura, bajo voltaje, corto y otras condiciones de error comunes
- El módulo incluye pines soldados y disipador de calor
Pinout driver A4988
Para poder emplear el driver A4988 se requiere conocer el funcionamiento de sus pines. La siguiente figura muestra los nombres de los pines y en la tabla a continuación se detalla el funcionamiento de cada uno.

| Numero de pin | Función | Descripción |
|---|---|---|
| 1 | EN | Habilita o deshabilita la salida del driver, activa en nivel bajo. |
| 2 | MS1 | Pin de control de micro stepping 1 |
| 3 | MS2 | Pin de control de micro stepping 2 |
| 4 | MS3 | Pin de control de micro stepping 3 |
| 5 | RST | Se utiliza para reestablecer la circuitería interna del driver |
| 6 | SLP | Pin de habilitación del modo de bajo consumo |
| 7 | STEP | Pin de control principal, cada pulso aplicado en este pin hará que el motor avance un paso o micro paso según la resolución |
| 8 | DIR | Pin de control principal, controla la dirección de giro del motor por cada pulso aplicado en el pin STEP |
| 9 | GND | Tierra principal del circuito |
| 10 | VDD | Alimentación de circuitos lógicos de 3 a 5 VDC |
| 11 | 1B | Activación o señal PWM motor DC #1 o motor a pasos #1 |
| 12 | 1A | Salida de driver fase 1, pin A |
| 13 | 2A | Salida de driver fase 1, pin B |
| 14 | 2B | Salida de driver fase 2, pin B |
| 15 | GND | Salida de driver fase 2, pin A |
| 16 | VMOT | Voltaje de alimentación del motor de 8 a 35 VDC |
Código de ejemplo para Arduino y driver A4988
El programa a continuación hace girar un motor a pasos utilizando el driver A4988. La velocidad de giro del motor se puede controlar mediante un potenciómetro, mientras que la dirección puede cambiarse con un botón. En el monitor serie se muestra la frecuencia de los pulsos aplicada en el pin STEP, de igual forma se muestra el estado del pin DIR cada que hay un cambio en este.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /** Geek Factory - "Dale vuelo a tus proyectos" www.geekfactory.mx PROGRAMA DE PRUEBA A4988 DRIVER PARA MOTOR A PASOS CONSULTA EL ARCHIVO LICENCIA.TXT PARA CONOCER MÁS SOBRE LOS DERECHOS DE DISTRIBUCIÓN DE ESTE MATERIAL O LA SIGUIENTE URL: HTTPS://WWW.GEEKFACTORY.MX/LICENCIA-CONTENIDO. PUBLICADO BAJO LICENCIA ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL (CC BY-NC-SA 4.0). GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. Resumen: Este programa hace girar un motor a pasos bipolar utilizando un controlador o driver A4988, DRV8825, TB6600 o similares. La velocidad de giro puede controlarse mediante un potenciómetro, mientras que el la dirección se controla oprimiendo un botón. */ #include <GFButton.h> // Pin para el control de dirección #define PIN_DIRECCION 2 // Pin para el control de pasos #define PIN_PASOS 3 // Pin para habilitar el driver de motores #define PIN_HABILITAR 4 // Entrada analogica a donde se conecta el potenciometro #define PIN_POTENCIOMETRO A0 // Pin de entrada para conectar el botón de giro #define PIN_BOTON 8 // instancia de botón para cambio de dirección GFButton botondir(PIN_BOTON); /** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // preparar intefaz serial Serial.begin(9600); // mensaje al monitor serial Serial.println(F("----------------------------------------------------")); Serial.println(F(" EJEMPLO DE MOTOR A PASOS CON DRIVER A4988 ")); Serial.println(F(" https://www.geekfactory.mx ")); Serial.println(F("----------------------------------------------------")); // configurar como salida pin de direccion pinMode(PIN_DIRECCION, OUTPUT); digitalWrite(PIN_DIRECCION, LOW); // configurar como salida pin de pasos pinMode(PIN_PASOS, OUTPUT); digitalWrite(PIN_PASOS, LOW); // configurar como salida pin de habilitacion pinMode(PIN_HABILITAR, OUTPUT); digitalWrite(PIN_HABILITAR, LOW); } /** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { static uint32_t ultimavez = 0; // si se oprime el botón cambiar el nivel lógico del pin de dirección if (botondir.wasPressed()) { // alternar el pin de dirección cada vez que se oprima el botón digitalWrite(PIN_DIRECCION, ((digitalRead(PIN_DIRECCION) == HIGH) ? LOW : HIGH)); // imprimir estado del pin Serial.print(F("Dirección: ")); Serial.println(digitalRead(PIN_DIRECCION)); } // ajustar la velocidad de los pulsos segun la entrada analogica uint16_t tpulso = map(analogRead(PIN_POTENCIOMETRO), 0, 1023, 100, 10000) / 2; // enviar pulsos de frecuencia variable al motor digitalWrite(PIN_PASOS, HIGH); delayMicroseconds(tpulso); digitalWrite(PIN_PASOS, LOW); delayMicroseconds(tpulso); // mostrar la frecuencia de los pulsos en el monitor serial cada 2 segundos uint32_t ahora = millis(); if (ahora - ultimavez >= 2000) { ultimavez = ahora; Serial.print(F("Frecuencia: ")); Serial.println(1.0 / ((float)tpulso * 0.000001)); } } |
Documentación
Información relacionada con este producto
- Video: calibración de la corriente del motor
- Tutorial externo de motores a paso con Arduino y driver A4988 o DRV8825
- Tutorial de motores a pasos en nuestro sitio web








Valoraciones
No hay valoraciones aún.