🛠 Automatiser un mouvement précis avec l'Encoder Motor Driver

Unité de pilotage moteur à encodeur M5Stack (DRV8837DSGR) · debutant · Apprenez à configurer un mouvement en boucle fermée pour un positionnement précis et répétable.

Objectifs

Ce tutoriel vise à automatiser un mouvement de moteur DC en utilisant le contrôle en boucle fermée. Contrairement au mode PWM simple, la boucle fermée utilise les données de l'encodeur pour corriger la vitesse en temps réel, garantissant une précision de positionnement même sous charge variable. Nous allons configurer l'unité pour atteindre une position cible spécifique.

Matériel nécessaire

Étapes

  1. Connexion physique : Branchez le moteur sur les bornes moteur de l'unité. Assurez-vous que les fils de l'encodeur (généralement les fils centraux ou dédiés selon le modèle) sont correctement connectés aux ports d'encodeur de l'unité. Connectez l'unité au maître via le câble Grove (I2C). Fournissez l'alimentation externe (6-12V).
  1. Configuration logicielle : Dans votre IDE (Arduino ou UIFlow), initialisez la communication I2C. L'adresse par défaut est 0x2F. Si vous utilisez UIFlow, ajoutez le bloc « Encoder Motor Driver ».
  1. Définition des paramètres : Configurez le nombre de PPR (Pulses Per Revolution) de votre encodeur (entre 3 et 15). Par exemple, si votre moteur a un encodeur de 12 PPR, entrez cette valeur. Définissez la vitesse cible en RPM.
  1. Commande de position : Envoyez une commande pour déplacer le moteur vers une position absolue ou relative. Par exemple, demandez au moteur de tourner de 360 degrés. Le driver utilisera le pont en H DRV8837 pour ajuster le courant et la vitesse afin d'atteindre la cible.
  1. Suivi du statut : Utilisez les fonctions de lecture pour vérifier la position actuelle et la vitesse réelle. La LED RGB peut être configurée pour indiquer l'état (par exemple, bleu en mouvement, vert quand la cible est atteinte).

Vérification

Lancez le programme. Le moteur doit tourner et s'arrêter précisément à la position demandée. Si vous bloquez légèrement le moteur avec votre main, le driver devrait augmenter le courant pour maintenir la position (grâce à la détection INA199A). Vérifiez que la vitesse reste stable malgré les variations de charge.

Pour aller plus loin

Explorez le mode « démarrage/arrêt progressif » pour éviter les chocs mécaniques. Vous pouvez également modifier l'adresse I2C pour connecter plusieurs unités sur le même bus et créer un système de positionnement multi-axes.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels