ESP32 - Pilote de moteur pas à pas DRV8825
Dans ce guide, nous explorerons le pilote de moteur pas à pas DRV8825 et découvrirons comment l'utiliser avec un ESP32 pour gérer le moteur pas à pas. Nous couvrirons les détails suivants :
- Qu'est-ce que le module pilote de moteur pas à pas DRV8825
- Comment fonctionne le module pilote de moteur pas à pas DRV8825
- Comment connecter le pilote de moteur pas à pas DRV8825 avec un ESP32 et un moteur pas à pas
- Comment programmer l'ESP32 pour gérer le moteur pas à pas en utilisant le module DRV8825
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du pilote de moteur pas à pas DRV8825
Le DRV8825 est un pilote de moteur pas à pas populaire utilisé pour contrôler des moteurs pas à pas bipolaires dans des appareils tels que les machines CNC, les imprimantes 3D et les robots. Il comprend des fonctionnalités telles qu'une limite de courant ajustable, une protection contre la surchauffe et diverses options de micro-pas comme le pas complet, 1/2, 1/4, 1/8, 1/16, et 1/32. Ce module peut gérer jusqu'à 2,2A par bobine avec un refroidissement adéquat et fonctionne sur une large plage de tensions allant de 8,2V à 45V, ce qui le rend polyvalent pour différents moteurs pas à pas.
Pour comprendre des concepts sur les moteurs pas à pas tels que le pas complet, le micro-pas, le moteur pas à pas unipolaire et le moteur pas à pas bipolaire, consultez le guide ESP32 - Moteur Pas à Pas.
Il est impressionnant que la gestion de la vitesse et de la direction d'un moteur pas à pas bipolaire, comme le NEMA 17, ne nécessite que deux broches ESP32.
Disposition des broches du pilote de moteur pas à pas DRV8825
Le pilote de moteur pas à pas DRV8825 comporte 16 broches. Voici une disposition courante pour le module de pilote de moteur pas à pas DRV8825. Gardez à l'esprit que certaines versions du module peuvent nommer les broches différemment, mais leurs fonctions sont identiques.
Pin Name | Description |
---|---|
VMOT | Motor power supply (8.2 V to 45 V). This powers the stepper motor. |
GND (for Motor) | Ground reference for the motor power supply. Connect this pin to the GND of the motor power supply |
2B, 2A | Outputs to Coil B of the stepper motor. |
1A, 1B | Outputs to Coil A of the stepper motor. |
FAULT | Fault Detection Pin. This is an output pin that drives LOW whenever the H-bridge FETs are disabled as the result of over-current protection or thermal shutdown. |
GND (for Logic) | Ground reference for the logic signals. Connect this pin to the GND of ESP32 |
ENABLE | Active-Low pin to enable/disable the motor outputs. LOW = Enabled, HIGH = Disabled. |
M1, M2, M3 | Microstepping resolution selector pins (see table below). |
RESET | Active-Low reset pin - pulling this pin LOW resets the driver. |
SLEEP | Active-Low sleep pin - pulling this pin LOW puts the driver into low-power sleep mode. |
STEP | Step input - a rising edge on this pin advances the motor by one step (or one microstep, depending on microstepping setting). |
DIR | Direction input - sets the rotation direction of the stepper motor. |
De plus, il y a un petit bouton intégré que vous pouvez tourner pour régler la limite de courant, ce qui aide à empêcher le moteur pas à pas et le pilote de devenir trop chauds.
En bref, ces 16 broches sont regroupées en ces types en fonction de leur utilisation :
- Broches reliées au moteur pas à pas : 1A, 1B, 2A, 2B.
- Broches reliées à l'ESP32 pour la gestion du pilote : ENABLE, M1, M2, M3, RESET, SLEEP.
- Broches reliées à l'ESP32 pour contrôler la direction et la vitesse du moteur : DIR, STEP.
- Broche pour envoyer des retours à l'ESP32 : FAULT.
- Broches reliées à la source d'alimentation du moteur : VMOT, GND (masse puissance moteur).
- Broche reliée à la masse de l'ESP32 : GND (masse logique).
Le module DRV8825 n'a pas besoin d'une alimentation logique de la carte ESP32 car il est alimenté par l'alimentation du moteur via son régulateur de tension 3,3V intégré. Néanmoins, il est important de relier la masse de l'ESP32 à la broche GND (logique) du module DRV8825 pour s'assurer qu'il fonctionne correctement et qu'il ait une référence de masse commune.
Configuration Microstep
Le pilote DRV8825 permet le micro-pas en divisant chaque pas en parties plus petites. Cela se fait en envoyant des niveaux de courant variés aux bobines du moteur.
Par exemple, un moteur NEMA 17 avec un angle de pas de 1,8 degré (200 pas par révolution) :
- Mode en pas entier : 200 pas par révolution
- Mode en demi-pas : 400 pas par révolution
- Mode en quart de pas : 800 pas par révolution
- Mode en huitième de pas : 1600 pas par révolution
- Mode en seizième de pas : 3200 pas par révolution
- Mode en trente-deuxième de pas : 6400 pas par révolution
En augmentant le niveau de micro-pas, le moteur fonctionne plus doucement et plus précisément, mais il nécessite plus de pas pour chaque tour complet. Si vous maintenez le même taux d'impulsion par pas (impulsions par seconde), chaque tour complet prendra alors plus de temps, ralentissant ainsi le moteur.
Cependant, si votre microcontrôleur peut envoyer des impulsions suffisamment rapides pour correspondre au nombre de pas plus élevé, vous pouvez maintenir ou même augmenter la vitesse. La véritable limite dépend de la rapidité avec laquelle à la fois le pilote et votre microcontrôleur peuvent gérer ces impulsions sans manquer de pas.
Broches de sélection de micro-pas DRV8825
Le DRV8825 comprend trois entrées pour sélectionner la résolution de micro-pas : les broches M0, M1 et M2. En configurant ces broches à certains niveaux logiques, vous pouvez choisir parmi six résolutions de micro-pas :
M0 Pin | M1 Pi | M2 Pi | Microstep Resolution |
---|---|---|---|
Low | Low | Low | Full step |
High | Low | Low | Half step |
Low | High | Low | 1/4 step |
High | High | Low | 1/8 step |
Low | Low | High | 1/16 step |
High | Low | High | 1/32 step |
Low | High | High | 1/32 step |
High | High | High | 1/32 step |
Ces broches de sélection de micro-pas sont équipées de résistances de tirage à la masse intégrées qui les maintiennent par défaut dans un état BAS. Si elles ne sont pas connectées, le moteur fonctionnera en mode pas complet.
Comment ça marche
Pour faire fonctionner un moteur pas à pas avec le module DRV8825, vous avez besoin de deux broches ESP32 : une pour la broche DIR et une autre pour la broche STEP. Le DRV8825 traite ces signaux provenant de l'ESP32 pour déplacer précisément le moteur pas à pas.
- Broche STEP : Chaque signal sur la broche STEP fait avancer le moteur d'un petit pas ou d'un pas complet, selon votre configuration.
- Broche DIR : Détermine dans quel sens tourne le moteur.
Le conducteur utilise ces signaux et ses propres réglages pour envoyer des commandes de contrôle au moteur via les broches 1A, 1B, 2A, et 2B.
Vous pouvez également configurer des broches supplémentaires sur le module DRV8825 (ENABLE, M1, M2, M3, RESET, SLEEP) de l'une des trois méthodes :
- Gardez-les séparés pour que le conducteur puisse utiliser les paramètres standard.
- Connectez-les directement à GND ou VCC pour un mode constant.
- Reliez-les aux broches ESP32 pour gérer ces fonctions via votre programmation.
Schéma de câblage entre ESP32, module DRV8825 et moteur pas à pas.
Le schéma ci-dessous montre les connexions de base requises entre l'ESP32, le module DRV8825 et le moteur pas à pas. Dans cette configuration, le pilote DRV8825 fonctionne en mode standard (pas complet).
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
En profondeur :
- VMOT : Connecter à la source d'alimentation du moteur (comme 12V).
- GND (pour le moteur) : Fixer à la masse de l'alimentation du moteur.
- 1A, 1B, 2A, 2B : Connecter aux bobines du moteur pas à pas.
- STEP : Connecter à la broche numérique D4 sur ESP32.
- DIR : Connecter à la broche numérique D3 sur ESP32.
- GND (pour la logique) : Connecter à la broche GND sur ESP32.
- Autres broches : Ne pas connecter.
Code ESP32
Étapes rapides
- Si c'est la première fois que vous utilisez ESP32, voir Installation du logiciel ESP32..
- Effectuez le câblage comme sur l'image ci-dessus.
- Connectez la carte ESP32 à votre PC via un câble USB.
- Ouvrez Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM.
- Copiez le code ci-dessus et ouvrez-le dans Arduino IDE.
- Allez dans la section Libraries sur le côté gauche de l'Arduino IDE.
- Recherchez "AccelStepper", puis localisez la bibliothèque AccelStepper par Mike McCauley.
- Appuyez sur le bouton Install pour ajouter la bibliothèque AccelStepper.
- Copiez le code et ouvrez-le dans l'IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à votre ESP32
- Vous verrez le moteur se déplacer d'avant en arrière
Astuce : Lorsque le moteur fonctionne en mode pas-entier, son mouvement peut ne pas être très fluide, mais c'est normal. Pour un mouvement plus fluide, activez le micropas en réglant les broches M1, M2 et M3.