🛠 Primer encendido del Driver Motor Encoder
Objetivos
Este tutorial tiene como objetivo realizar la primera conexión física y el encendido de la Unidad Driver Motor Encoder (DRV8837DSGR) de M5Stack. Aprenderá a identificar conectores, proporcionar la alimentación correcta y verificar la comunicación I2C inicial. Al final, sabrá si su unidad es funcional y está lista para el control del motor.
Materiales necesarios
- 1x Unidad Driver Motor Encoder (DRV8837DSGR)
- 1x Motor DC con encoder (6 hilos) o motor TT compatible
- 1x Fuente de alimentación DC externa (6V a 12V)
- 1x Cable Grove (para enlace I2C a un maestro como M5Stack Core2 o ESP32)
- Software Arduino IDE con la biblioteca M5Stack instalada
Pasos
- Verificación de componentes : Asegúrese de que la unidad no tenga daños visibles. La dirección I2C predeterminada es 0x2F. Si cambia la dirección, anótela inmediatamente.
- Conexión del motor : Conecte el motor a los terminales del motor en la unidad. Para un motor de 6 hilos, siga el esquema de pines estándar (Fase A/B y Encoder A/B). Para un motor TT, conecte los dos hilos de potencia.
- Alimentación externa : Conecte su fuente DC (6-12V) a los terminales de alimentación externa (GND y VCC). La unidad convertirá esto a 5V internos para el motor (máx. 1.2A).
- Enlace I2C : Conecte la unidad a su placa maestra a través del puerto Grove. Asegúrese de que las líneas SDA y SCL estén correctamente conectadas. No conecte la alimentación del motor antes de verificar el enlace lógico.
- Inicialización de software : Abra Arduino IDE. Instale la biblioteca M5Stack. Cree un nuevo proyecto. Incluya
M5Unified.ho la librería específica del driver si está disponible. - Código de prueba : Escriba un código mínimo para inicializar I2C y escanear el bus. Ejemplo de comando básico:
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin();
Serial.println("Escaneando I2C...");
for (byte i = 8; i < 120; i++) {
Wire.beginTransmission(i);
if (Wire.endTransmission() == 0) {
Serial.print("Dirección encontrada: ");
Serial.println(i, HEX);
}
}
}
void loop() {}
- Carga : Compile y cargue el código en su placa maestra.
Verificación
Abra el monitor serie a 115200 baudios. Debería ver la dirección 0x2F mostrada en el escáner I2C. Si aparece la dirección, la comunicación está establecida. El LED RGB WS2812C puede encenderse brevemente al iniciar, indicando una alimentación correcta. Si no se encuentra ninguna dirección, verifique las conexiones SDA/SCL y la fuente de alimentación.
Para ir más allá
Una vez confirmada la comunicación, explore los modos de control en lazo cerrado. Pruebe la lectura del encoder para medir la velocidad real del motor. Puede implementar un PID simple para mantener una velocidad constante a pesar de las cargas variables.
Otros tutoriales para esta placa
- Primer cableado y puesta en marcha de la Encoder Motor Driver Unit
- Dominar las E/S con la Unidad de Motor con Encoder
- Automatizar un movimiento preciso con el Controlador de Motor con Encoder
- Control de GPIO y LED RGB en la Encoder Motor Driver Unit
- Automatización con realimentación de encoder DRV8837
- Configuración avanzada y validación del bus I2C
Ejemplos de código para esta placa
m5stack-encoder-motor-i2c-esp32.inoC++ (Arduino)m5stack-encoder-motor-pwm-control.inoC++ (Arduino)m5stack-encoder-motor-closed-loop.inoC++ (Arduino)m5stack-encoder-motor-position-control.inoC++ (Arduino)m5stack-encoder-motor-led-status.inoC++ (Arduino)closed_loop_speed_pid.pyMicroPython