ESP8266 - Controlador de motor paso a paso DRV8825

En esta guía, aprenderemos sobre el controlador de motor paso a paso DRV8825 y cómo usarlo con ESP8266 para operar el motor paso a paso. A continuación se presentan los detalles que cubriremos:

módulo ESP8266 NodeMCU DRV8825

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Stepper Motor Nema 17
1×DRV8825 Stepper Motor Driver
1×Expansion Board for DRV8825 Motor Driver
1×Adaptador de Corriente 12V
1×Conector de Alimentación DC
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del controlador de motor paso a paso DRV8825

El DRV8825 es un módulo popular para gestionar motores paso a paso bipolares, que a menudo se utilizan en máquinas CNC, impresoras 3D y robots. Cuenta con un control de corriente ajustable, protección contra el sobrecalentamiento y ofrece varias opciones de microstepping, como paso completo, medio paso y fracciones de hasta 1/32 de paso. Este módulo puede manejar hasta 2.2 A por bobina con una refrigeración adecuada y funciona dentro de un amplio rango de voltaje, desde 8.2 V hasta 45 V, para acomodar diferentes motores paso a paso.

Para entender conceptos de motor paso a paso, como el paso completo, el micropaso, el motor paso a paso unipolar y el motor paso a paso bipolar, consulta la guía ESP8266 - motor paso a paso.

Es increíble que solo necesites dos pines del ESP8266 para controlar qué tan rápido y en qué dirección se mueve un motor paso a paso bipolar, como el NEMA 17.

Pinout del controlador de motor paso a paso DRV8825

Pinout del módulo DRV8825

El controlador de motor paso a paso DRV8825 cuenta con 16 pines. A continuación se muestra una disposición común de los pines en el módulo controlador DRV8825. Ten en cuenta que algunas versiones del módulo pueden nombrar los pines de forma ligeramente diferente, pero sus funciones no cambian.

Pin Name Description
VMOT Motor power supply (8.2 V to 45 V). This powers the stepper motor.
GND (for Motor) Ground reference for the motor power supply. Connect this pin to the GND of the motor power supply
2B, 2A Outputs to Coil B of the stepper motor.
1A, 1B Outputs to Coil A of the stepper motor.
FAULT Fault Detection Pin. This is an output pin that drives LOW whenever the H-bridge FETs are disabled as the result of over-current protection or thermal shutdown.
GND (for Logic) Ground reference for the logic signals. Connect this pin to the GND of ESP8266
ENABLE Active-Low pin to enable/disable the motor outputs. LOW = Enabled, HIGH = Disabled.
M1, M2, M3 Microstepping resolution selector pins (see table below).
RESET Active-Low reset pin - pulling this pin LOW resets the driver.
SLEEP Active-Low sleep pin - pulling this pin LOW puts the driver into low-power sleep mode.
STEP Step input - a rising edge on this pin advances the motor by one step (or one microstep, depending on microstepping setting).
DIR Direction input - sets the rotation direction of the stepper motor.

Además, hay un pequeño dial integrado que puedes girar para ajustar el control de corriente, lo que ayuda a evitar que el motor paso a paso y el driver se sobrecalienten.

En resumen, estos 16 pines se agrupan en estos tipos según su uso:

  • Cables conectados al motor paso a paso: 1A, 1B, 2A, 2B.
  • Cables conectados al ESP8266 para controlar el controlador: ENABLE, M1, M2, M3, RESET, SLEEP.
  • Cables conectados al ESP8266 para controlar la dirección y la velocidad del motor: DIR, STEP.
  • Cable para enviar retroalimentación al ESP8266: FAULT.
  • Cables conectados a la fuente de alimentación del motor: VMOT, GND (tierra de alimentación del motor).
  • Cable conectado a la tierra del ESP8266: GND (tierra lógica).

La unidad DRV8825 no necesita una fuente de alimentación separada de la ESP8266, porque obtiene su alimentación directamente de la fuente de alimentación del motor con su regulador de voltaje de 3.3 V integrado. Sin embargo, debes conectar la masa de la ESP8266 al pin GND (lógica) del DRV8825 para asegurar que funcione correctamente y que el nivel de masa sea el mismo para ambos dispositivos.

Configuración de micropasos

El controlador DRV8825 permite los micropasos dividiendo cada paso en partes más pequeñas. Esto lo hace enviando diferentes cantidades de corriente a las bobinas del motor.

Por ejemplo, un motor NEMA 17 con un ángulo de paso de 1,8° (200 pasos por vuelta):

  • Modo de paso completo: 200 pasos por revolución
  • Modo de medio paso: 400 pasos por revolución
  • Modo de cuarto de paso: 800 pasos por revolución
  • Modo de octavo de paso: 1600 pasos por revolución
  • Modo de 1/16 de paso: 3200 pasos por revolución
  • Modo de 1/32 de paso: 6400 pasos por revolución

Cuando aumentas el nivel de microstepping, el motor funciona de forma más suave y precisa, pero necesita más pasos por revolución. Si mantienes la misma tasa de pulsos de paso, cada revolución durará más, lo que hará que el motor se ralentice.

Si tu microcontrolador puede enviar pulsos lo suficientemente rápidos para igualar el mayor número de pasos, puedes mantener o incluso aumentar la velocidad. El límite real depende de qué tan rápido tanto el controlador como tu microcontrolador pueden manejar estos pulsos sin perder pasos.

Pines de selección de micropasos del DRV8825

El DRV8825 tiene tres entradas para elegir la resolución de micropasos, llamadas M0, M1 y M2. Puedes configurar estos pines en determinados niveles lógicos para seleccionar entre seis resoluciones diferentes de micropasos:

M0 Pin M1 Pi M2 Pi Microstep Resolution
Low Low Low Full step
High Low Low Half step
Low High Low 1/4 step
High High Low 1/8 step
Low Low High 1/16 step
High Low High 1/32 step
Low High High 1/32 step
High High High 1/32 step

Estos pequeños pines de ajuste tienen resistencias integradas que los mantienen en un nivel bajo de forma normal. Si no están conectados, el motor funcionará en modo de paso completo.

Cómo funciona

Para operar un motor paso a paso con el módulo DRV8825, se requieren al menos dos pines del ESP8266: uno para la señal DIR y otro para la señal STEP. El DRV8825 procesa estas señales desde el ESP8266 para mover con precisión el motor paso a paso.

  • Pin STEP: Cada señal en el pin STEP mueve el motor un pequeño paso o un paso completo, según tus ajustes.
  • Pin DIR: Configura la dirección en la que gira el motor.

El controlador utiliza estas señales y sus configuraciones para enviar señales de control al motor a través de los pines 1A, 1B, 2A y 2B.

También puedes configurar pines adicionales en el módulo DRV8825 (ENABLE, M1, M2, M3, RESET, SLEEP) en una de las tres formas:

  • Manténgalos separados para que el controlador pueda usar configuraciones básicas.
  • Conéctelos directamente a GND o a VCC para establecer un modo constante.
  • Enlázelos a los pines del ESP8266 para gestionar estas funciones mediante su código.

Diagrama de cableado entre ESP8266, el módulo DRV8825 y el motor paso a paso

El diagrama de abajo muestra las conexiones básicas necesarias entre el ESP8266, el módulo DRV8825 y el motor paso a paso. Con esta configuración, el controlador DRV8825 funciona en su modo estándar (paso completo).

Diagrama de cableado del driver DRV8825 para motor paso a paso con ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

De una manera detallada:

  • VMOT: Conectar a la fuente de alimentación del motor, por ejemplo 12 V.
  • GND (para el motor): Conectar a la tierra de la fuente de alimentación del motor.
  • 1A, 1B, 2A, 2B: Conectar a las bobinas del motor paso a paso.
  • STEP: Conectar al pin digital D4 del ESP8266.
  • DIR: Conectar al pin digital D3 del ESP8266.
  • GND (para Lógica): Conectar al pin GND del ESP8266.
  • Otros pines: No conectar.

Código ESP8266

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define STEP_PIN D1 // The ESP8266 pin connected to STEP pin of DRV8825 module #define DIR_PIN D2 // The ESP8266 pin connected to DIR pin of DRV8825 module // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor stepper.setMaxSpeed(1000); stepper.setAcceleration(200); // set speed and the target position stepper.setSpeed(200); stepper.moveTo(200); } void loop() { // Change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // Move the motor one step }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestran en el diagrama.
  • Conecta la placa ESP8266 a tu computadora mediante un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (Módulo ESP-12E)), y su puerto COM correspondiente.
  • Copia el código anterior y ábrelo en el software ESP8266.
  • Haz clic en el icono Bibliotecas en el lado izquierdo de la interfaz ESP8266.
  • Escribe "AccelStepper" en el cuadro de búsqueda, y busca la biblioteca AccelStepper de Mike McCauley.
  • Pulsa el botón Instalar para añadir la biblioteca AccelStepper.
Biblioteca AccelStepper para ESP8266 NodeMCU
  • Copia el código de arriba y ábrelo en Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para enviar el código al ESP8266
  • Verás el motor moviéndose de un lado a otro

Cuando uses el motor en modo de paso completo, su movimiento puede no ser muy suave, lo cual es normal. Para que el movimiento sea más suave, activa el microstepping configurando los pines M1, M2 y M3.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!