Arduino Nano 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 l'Arduino Nano ESP32 pour gérer le moteur pas à pas. Plus précisément, nous aborderons :
- 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 Arduino Nano ESP32 et un moteur pas à pas ?
- Comment écrire un programme pour Arduino Nano ESP32 afin de gérer un 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 module populaire utilisé pour contrôler les moteurs pas à pas bipolaires, couramment trouvés dans les machines CNC, les imprimantes 3D et les robots. Il dispose d'une limite de courant ajustable, d'une protection contre la surchauffe et d'options pour différents modes de pas, allant du pas complet à de minuscules pas de 1/32. Il peut gérer jusqu'à 2,2A pour chaque bobine de moteur avec un refroidissement adéquat et fonctionne dans une plage de tension de 8,2V à 45V, s'adaptant à divers moteurs pas à pas.
Pour comprendre des concepts de moteur pas à pas tels que : pas complet, micro-pas, moteur pas à pas unipolaire et moteur pas à pas bipolaire, consultez le guide Arduino Nano ESP32 - Moteur pas à pas.
En utilisant seulement deux broches sur un Arduino Nano ESP32, vous pouvez facilement gérer la vitesse et la direction d'un moteur pas à pas bipolaire NEMA 17.
Pilote de moteur pas à pas DRV8825 Schéma de connexion
Le pilote de moteur pas à pas DRV8825 dispose de 16 broches. Voici une disposition courante des broches sur le module DRV8825. Gardez à l'esprit que certaines versions peuvent nommer les broches un peu différemment, mais leurs fonctions restent les mêmes.
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 Arduino Nano 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. |
Il y a aussi un petit bouton de réglage inclus qui vous permet de régler la limite de courant pour éviter que le moteur pas à pas et le pilote ne surchauffent.
En résumé, ces 16 broches sont regroupées dans les catégories suivantes en fonction de leur fonction :
- Fils reliés au moteur pas à pas : 1A, 1B, 2A, 2B.
- Fils reliés à l'Arduino Nano ESP32 pour contrôler le pilote : ENABLE, M1, M2, M3, RESET, SLEEP.
- Fils reliés à l'Arduino Nano ESP32 pour contrôler la direction et la vitesse du moteur : DIR, STEP.
- Fil pour envoyer les signaux d'erreur à l'Arduino Nano ESP32 : FAULT.
- Fils reliés à la source d'alimentation du moteur : VMOT, GND (masse d'alimentation du moteur).
- Fil relié à la masse de l'Arduino Nano ESP32 : GND (masse logique).
Le module DRV8825 n’a pas besoin d’alimentation de la carte Arduino Nano ESP32 pour sa logique, car il utilise l’alimentation du moteur par le biais de son régulateur de tension intégré de 3,3V. Cependant, vous devez connecter la masse de l’Arduino Nano ESP32 à la broche GND (logiciel) du DRV8825 pour vous assurer qu’il fonctionne correctement et partage une masse commune.
Configuration Microstep
Le pilote DRV8825 permet le micro-pas en divisant chaque pas en parties plus petites. Cela est réalisé en appliquant différents niveaux de courant aux bobines du moteur.
Par exemple, moteur NEMA 17 avec un angle de pas de 1,8 degré (200 pas par révolution) :
- Mode plein pas : 200 pas par rotation
- Mode demi-pas : 400 pas par rotation
- Mode quart de pas : 800 pas par rotation
- Mode huitième de pas : 1600 pas par rotation
- Mode seizième de pas : 3200 pas par rotation
- Mode trente-deuxième de pas : 6400 pas par rotation
Lorsque vous réglez le micro-pas plus haut, le moteur fonctionne de manière plus fluide et précise, mais il nécessite plus de pas pour chaque tour complet. Si vous maintenez le même taux d'impulsions de pas, chaque tour complet prendra plus de temps, ralentissant ainsi le moteur.
Si votre microcontrôleur peut envoyer des impulsions suffisamment rapides pour le nombre de pas plus élevé, vous pouvez maintenir ou même augmenter la vitesse. La véritable limite repose sur la rapidité avec laquelle le pilote et votre microcontrôleur peuvent gérer ces impulsions sans manquer des pas.
Broches de sélection de micropas DRV8825
Le DRV8825 comprend trois entrées pour choisir la résolution des micro-pas : les broches M0, M1 et M2. En réglant ces broches à certains niveaux logiques, vous pouvez sélectionner 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 petits broches de choix de pas sont équipés de résistances pull-down intégrées qui les maintiennent naturellement dans un état BAS. Si vous ne les connectez pas, le moteur fonctionnera en mode pas complet.
Comment ça marche
Pour faire fonctionner un moteur pas à pas avec le module DRV8825, vous avez besoin d'au moins deux broches Arduino Nano ESP32 : une pour la broche DIR et une autre pour la broche STEP. Le DRV8825 décode ces signaux provenant de l'Arduino Nano ESP32 pour déplacer précisément le moteur pas à pas.
- Broche STEP : Chaque impulsion sur la broche STEP déplace le moteur d'un petit pas (ou d'un pas entier, selon le réglage de micro-pas).
- Broche DIR : Détermine dans quel sens tourne le moteur.
Le conducteur utilise ces signaux et ses propres réglages pour envoyer des sorties de commande 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 manières suivantes :
- Ne les connectez pas pour que le pilote utilise les paramètres par défaut.
- Connectez-les directement à GND ou VCC pour un mode stable.
- Reliez-les aux broches de l'Arduino Nano ESP32 pour contrôler leurs fonctions avec votre code.
Schéma de câblage entre Arduino Nano ESP32, module DRV8825 et moteur pas à pas
Le schéma ci-dessous affiche les connexions de base requises entre l'Arduino Nano ESP32, le module DRV8825 et le moteur pas à pas. Dans cette configuration, le pilote DRV8825 fonctionne en mode standard (plein pas).
This image is created using Fritzing. Click to enlarge image
En détail :
- VMOT : Connectez à la source d'alimentation du moteur (comme 12V).
- GND (pour le moteur) : Connectez à la mise à la terre de la source d'alimentation du moteur.
- 1A, 1B, 2A, 2B : Connectez aux bobines du moteur pas à pas.
- STEP : Connectez à la broche numérique D4 de l'Arduino Nano ESP32.
- DIR : Connectez à la broche numérique D3 de l'Arduino Nano ESP32.
- GND (pour la logique) : Connectez à la broche GND de l'Arduino Nano ESP32.
- Autres broches : laissez non connectées.
Code Arduino Nano ESP32
Étapes rapides
Pour commencer avec Arduino Nano ESP32, suivez ces étapes :
- Si vous êtes nouveau sur l'Arduino Nano ESP32, référez-vous au tutoriel sur Installation du logiciel Arduino Nano ESP32..
- Connectez les composants selon le schéma fourni.
- Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'Arduino IDE sur votre ordinateur.
- Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
- Copiez le code et ouvrez-le dans l'Arduino IDE.
- Allez à l'icône Libraries sur le côté gauche de l'Arduino IDE.
- Tapez « AccelStepper » pour rechercher, 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 à l'Arduino Nano ESP32.
- Vous verrez le moteur tourner d'avant en arrière.
Lors de l'utilisation du moteur en mode pas entier, son mouvement pourrait ne pas être très fluide, ce qui est habituel. Pour obtenir un mouvement plus fluide, activez la micropas par la configuration des broches M1, M2 et M3.