En este tutorial vas a aprender a controlar un motor paso a paso de forma remota usando un control IR de manera sencilla y práctica. Nuestro motor incluye una placa driver dedicada para que la conexión con el ESP32 sea totalmente directa.
Componentes Necesarios
(1) x Elegoo ESP32
(2) x Breadboard de 400 puntos
(1) x Módulo receptor IR
(1) x Control remoto IR
(1) x Módulo driver ULN2003
(1) x Motor paso a paso
(6) x Cables Hembra-Macho (DuPont)
(5) x Cables Macho-Macho (puentes)
Esquema de Conexión y Cableado
Para este proyecto vamos a usar una fuente para breadboard económica (de las que se enchufan directo) para alimentar el motor con 9V 1A, ya que no es recomendable darle potencia directamente desde el ESP32. El sensor IR, en cambio, va directo a la placa porque consume casi nada de energía.
Código
Podés hacer clic en el enlace para descargar el programa a tu computadora y abrirlo con un doble clic. Acordate de tener instalado el IDE de Arduino y los soportes para la placa ESP32 antes de empezar. Si tenés dudas con la instalación, fijate en la "Parte 1" de la guía para ver los pasos detallados.
Con este código, el ESP32 maneja un motor 28BYJ-48. El motor puede girar para ambos lados, se detiene solo tras 3 segundos de inactividad y entra en modo sleep a los 5 segundos para ahorrar batería.
Análisis del Código
Librería: Usamos #include <Stepper.h>, que es la librería estándar de Arduino para manejar estos motores.
Parámetros del motor: Definimos stepsPerRevolution = 2048 (pasos por vuelta completa) y una velocidad de 10 RPM, que es lo ideal para el modelo 28BYJ-48.
Configuración de pines: Mapeamos los pines GPIO 5, 19, 18 y 21. Definimos cada pin por separado para poder mandarlos a un estado de ahorro de energía cuando el motor no esté en uso.
Variables de estado: Usamos flags para monitorear si el motor está andando, si entró en modo sleep y para llevar la cuenta del tiempo desde el último comando recibido.
Lectura de pulsos IR: La función readPulse se encarga de medir la duración de los pulsos que recibe el sensor para identificar qué botón del control remoto tocaste.
Solución de Problemas
Si el motor no se mueve, revisá que la fuente de 9V esté bien conectada a la breadboard y prendida. Fijate también que el orden de los cables en el driver ULN2003 coincida con el código; un cable suelto es la causa más común de fallas en estos circuitos.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.