🛠 Maîtriser les entrées-sorties avec l'Encoder Motor Driver Unit

Unité de pilotage moteur à encodeur 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.

Objectifs

Ce tutoriel vise à comprendre les interfaces d'entrée/sortie de l'Encoder Motor Driver Unit (DRV8837DSGR). Nous allons configurer la communication I2C pour contrôler la LED RGB programmable WS2812C intégrée et lire les impulsions de l'encodeur pour estimer la position du moteur. Ce niveau d'introduction nécessite une compréhension basique des protocoles de communication série.

Matériel nécessaire

Étapes

  1. Installation des bibliothèques : Dans l'Arduino IDE, installez la bibliothèque officielle M5Stack et la bibliothèque dédiée M5EncoderMotorDriver. Ces bibliothèques gèrent les registres internes du STM32G031.
  2. Connexion physique : Connectez l'unité à un port Grove I2C (G16/G17 ou G21/G22 selon votre carte). Assurez-vous que l'alimentation externe DC 6-12V est branchée sur le connecteur dédié, car le moteur nécessite plus de courant que le port Grove seul.
  3. Initialisation I2C : Dans le code, initialisez le bus I2C. L'adresse par défaut du driver est 0x2F. Vérifiez la connexion via une fonction de scan I2C si nécessaire.
  4. Configuration de la LED RGB : Utilisez la fonction pour définir la couleur de la LED WS2812C. Par exemple, mettez la LED en rouge pour indiquer que le moteur est prêt. La LED sert ici d'indicateur d'état visuel simple.
  5. Lecture de l'encodeur : Configurez le driver pour lire les impulsions de l'encodeur AB. Bien que le contrôle en boucle fermée soit avancé, nous lisons ici la valeur brute du compteur pour observer les changements de position.

Vérification

Téléversez le code. La LED de l'unité doit s'allumer en rouge. Faites tourner le moteur à la main ou avec une commande de rotation lente. Ouvrez le moniteur série (115200 bauds). Vous devez voir les valeurs de l'encodeur augmenter ou diminuer selon le sens de rotation, confirmant que les entrées de l'encodeur et la sortie LED fonctionnent correctement via I2C.

Pour aller plus loin

Explorez le contrôle en boucle fermée de la vitesse en utilisant les données de l'encodeur pour ajuster le PWM automatiquement, ou utilisez la détection de courant INA199A pour surveiller la charge du moteur.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels