🛠 Control de GPIO y LED RGB en el Driver Motor 4-Encoders
Objetivos
Este tutorial tiene como objetivo dominar las funciones de entrada/salida (GPIO) y la visualización luminosa del módulo M5Stack 4-Encoder Motor Driver. A diferencia de los controladores clásicos, este módulo integra un microcontrolador STM32F030C8T6 que gestiona los periféricos. Configuraremos los puertos Grove para leer estados lógicos y controlar el LED RGB WS2812C integrado para mostrar el estado del sistema, manteniendo el control de los motores mediante I2C.
Material Necesario
- Módulo M5Stack 4-Encoder Motor Driver (DRV8837DSGR)
- Placa base compatible con M5Stack (Core2, CoreS3, etc.) o ESP32 con librería M5Unified
- Cables Grove HY2.0-4P
- Un botón pulsador o un sensor digital conectado a un puerto Grove
- Fuente de alimentación externa DC de 6-12V (recomendada para pruebas de motores)
Pasos
- Conexión de Hardware: Inserte el módulo en el puerto Grove de su placa base. Conecte un botón pulsador a uno de los dos puertos Grove HY2.0-4P disponibles en el módulo. Asegúrese de que el módulo esté alimentado mediante el puerto Grove (5V) o la entrada DC externa.
- Inicialización de Software: En su código Arduino, incluya la librería
M5Stack_M5Stack. Inicialice el módulo conM5.begin()y arranque el driver del motor conM5.M5Stack.begin(). Verifique que la comunicación I2C (dirección 0x24) esté activa.
- Configuración de GPIO: El módulo expone líneas GPIO a través de sus puertos Grove. Utilice funciones específicas del driver para definir la dirección de los pines. Por ejemplo, configure el pin asociado al puerto Grove utilizado como entrada digital (
INPUT_PULLUP) para leer el estado del botón.
- Control del LED RGB: El LED WS2812C es direccionable mediante el bus I2C. Envíe un comando para definir el color. Por ejemplo, encienda el LED en verde si el botón está suelto, y en rojo si está presionado. Utilice la función
setRGB(r, g, b)proporcionada por la librería del driver.
- Bucle de Lectura: En la función
loop(), lea el estado del GPIO conectado al botón. Actualice el color del LED en consecuencia. Añada un retraso de 10ms para evitar rebotes mecánicos y la saturación del bus I2C.
Verificación
Abra el monitor serie a 115200 baudios. Muestre el estado del botón leído por el GPIO. Presione el botón: el LED del módulo debe cambiar de color instantáneamente. Verifique que los motores permanezcan inmóviles si no se envía ninguna orden de movimiento, confirmando que la configuración GPIO no afecta a los puentes en H.
Para Ir Más Allá
Explore el uso del sensor de corriente INA199A integrado. Puede leer la corriente consumida por cada motor y hacer parpadear el LED RGB según la carga detectada, creando un sistema de diagnóstico visual para sus robots.
Otros tutoriales para esta placa
- Primer Conexión y Puesta en Marcha del Driver Motor 4-Encoder
- Descubriendo E/S: LED RGB y lectura de encoders
- Automatiza un chasis robótico con el Driver 4-Encoder
- Primera conexión y puesta en marcha del 4-Encoder Motor Driver
- Automatización en Bucle Cerrado con Driver 4-Encoder
- Primer cableado e inicialización del módulo 4-Encoder Motor Driver
Ejemplos de código para esta placa
i2c-motor-spin.inoarduinoclosed-loop-speed-control.inoarduinorelative-position-move.inoarduinorgb-led-status-indicator.inoarduinodifferential-drive-robot.inoarduinoi2c_basic_motor_control.pyPython