relative-position-move.ino

Unit 4-Encoder Motor Driver (DRV8837DSGR) · Fichier : relative-position-move.ino · Langage : arduino · Usage : Déplacer un moteur d'un nombre précis de pas (positionnement relatif) pour un bras robotique.

Utilise le mode position pour déplacer le moteur 2 de 1000 pas relatifs, utile pour le contrôle précis d'articulations.

Le module calcule la distance basée sur les ticks de l'encodeur. La fonction isBusy() permet de synchroniser le code principal avec la fin du mouvement physique. Vérifiez le sens de rotation selon le câblage.

relative-position-move.ino

#include <M5Stack_MotorDriverUnit.h>

M5Stack_MotorDriverUnit motorDriver;

void setup() {
  M5.begin();
  motorDriver.begin();
  // Mode Position (Boucle fermée sur l'encodeur)
  motorDriver.setMode(2, MODE_POSITION);
  // Déplacer le moteur 2 de 1000 pas dans le sens horaire
  motorDriver.moveRelative(2, 1000, 30); // 30% de vitesse max
}

void loop() {
  // Attendre que le mouvement soit terminé
  while (motorDriver.isBusy(2)) {
    delay(10);
  }
  Serial.println("Move completed.");
  delay(2000);
  // Revenir à la position initiale
  motorDriver.moveRelative(2, -1000, 30);
  while (motorDriver.isBusy(2)) delay(10);
}

← Retour à la fiche