closed-loop-speed-control.ino

Unit 4-Encoder Motor Driver (DRV8837DSGR) · File : closed-loop-speed-control.ino · Language : arduino · Use case : Maintenir une vitesse constante d'un moteur malgré les variations de charge grâce à l'encodeur.

Configures motor channel 1 in automatic speed regulation mode using integrated encoder data.

Requires the M5Stack_MotorDriverUnit library. The module uses encoder pulses to adjust PWM in real-time. Ensure the motor has an encoder connected to the PH2.0-6P connector.

closed-loop-speed-control.ino

#include <M5Stack_MotorDriverUnit.h>

M5Stack_MotorDriverUnit motorDriver;

void setup() {
  M5.begin();
  if (!motorDriver.begin()) {
    Serial.println("Motor Driver Unit not found!");
    while (1);
  }
  // Configurer le canal 1 pour le contrôle en boucle fermée (vitesse)
  motorDriver.setMode(1, MODE_SPEED);
  motorDriver.setSpeed(1, 50); // Objectif : 50% de la vitesse max
}

void loop() {
  // Le module gère la régulation PID en interne via les données de l'encodeur
  // Lecture optionnelle de la vitesse actuelle
  int currentSpeed = motorDriver.getSpeed(1);
  Serial.printf("Motor 1 Current Speed: %d\n", currentSpeed);
  delay(1000);
}

← Back to the board