m5stack-encoder-motor-pwm-control.ino

Unidad de control de motor con encoder M5Stack (DRV8837DSGR) · Archivo : m5stack-encoder-motor-pwm-control.ino · Lenguaje : C++ (Arduino) · Uso : Contrôler la vitesse d'un moteur DC connecté à l'unité en mode PWM simple sans boucle fermée.

Control de velocidad del motor en lazo abierto mediante escritura I2C directa.

Este ejemplo muestra cómo enviar comandos básicos de velocidad. Utiliza una dirección de registro hipotética (0x0A) para ilustrar la lógica; consulte la hoja de datos de M5Stack para los registros exactos. El código varía la velocidad de 0 a 255 y luego se invierte. El DRV8837DSGR maneja el PWM interno. Se requiere una fuente de alimentación externa para el motor.

m5stack-encoder-motor-pwm-control.ino

#include <Wire.h>

#define I2C_ADDRESS 0x2F
#define REG_MOTOR_SPEED 0x0A // Exemple d'adresse registre (à vérifier selon datasheet M5Stack)

void setup() {
  Serial.begin(115200);
  Wire.begin();
  
  // Mode PWM simple
  // Note: Les adresses de registre spécifiques doivent être consultées dans la documentation M5Stack
  // Ici on simule l'écriture d'une valeur de vitesse (0-255)
  setMotorSpeed(150); 
}

void loop() {
  // Variation simple de la vitesse
  for(int i=0; i<=255; i+=10) {
    setMotorSpeed(i);
    delay(100);
  }
  for(int i=255; i>=0; i-=10) {
    setMotorSpeed(i);
    delay(100);
  }
}

void setMotorSpeed(uint8_t speed) {
  Wire.beginTransmission(I2C_ADDRESS);
  Wire.write(REG_MOTOR_SPEED);
  Wire.write(speed);
  Wire.endTransmission();
}

← Volver a la ficha