🛠 Dominar las E/S con la Unidad de Motor con Encoder

Unidad de control de motor con encoder M5Stack (DRV8837DSGR) · debutant · Apprenez à utiliser la LED RGB intégrée et à lire les données de l'encodeur via I2C pour un contrôle visuel et positionnel basique.

Objetivos

Este tutorial tiene como objetivo comprender las interfaces de entrada/salida de la Unidad de Motor con Encoder (DRV8837DSGR). Configuraremos la comunicación I2C para controlar el LED RGB programable WS2812C integrado y leer los pulsos del encoder para estimar la posición del motor. Este nivel de introducción requiere una comprensión básica de los protocolos de comunicación serie.

Hardware Necesario

Pasos

  1. Instalación de Bibliotecas: En Arduino IDE, instala la biblioteca oficial M5Stack y la biblioteca dedicada M5EncoderMotorDriver. Estas bibliotecas gestionan los registros internos del STM32G031.
  2. Conexión Física: Conecta la unidad a un puerto Grove I2C (G16/G17 o G21/G22 según tu placa). Asegúrate de que la fuente de alimentación externa DC 6-12V esté conectada al conector dedicado, ya que el motor requiere más corriente que la que puede proporcionar solo el puerto Grove.
  3. Inicialización I2C: En el código, inicializa el bus I2C. La dirección predeterminada del controlador es 0x2F. Verifica la conexión mediante una función de escaneo I2C si es necesario.
  4. Configuración del LED RGB: Usa la función para establecer el color del LED WS2812C. Por ejemplo, configura el LED en rojo para indicar que el motor está listo. El LED sirve aquí como un indicador de estado visual simple.
  5. Lectura del Encoder: Configura el controlador para leer los pulsos del encoder AB. Aunque el control en bucle cerrado es avanzado, aquí leemos el valor bruto del contador para observar los cambios de posición.

Verificación

Sube el código. El LED de la unidad debe encenderse en rojo. Gira el motor a mano o con un comando de rotación lenta. Abre el Monitor Serie (115200 baudios). Deberías ver los valores del encoder aumentar o disminuir según la dirección de rotación, confirmando que las entradas del encoder y la salida del LED funcionan correctamente a través de I2C.

Para Ir Más Allá

Explora el control de velocidad en bucle cerrado utilizando los datos del encoder para ajustar el PWM automáticamente, o usa la detección de corriente INA199A para monitorear la carga del motor.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales