Arduino - Pilote de moteur pas à pas DRV8825
Dans ce tutoriel, nous allons apprendre à connaître le pilote de moteur pas à pas DRV8825 et comment l'utiliser avec un Arduino pour contrôler le moteur pas à pas. En détail, nous allons apprendre :
- Qu'est-ce que le module de pilote de moteur pas à pas DRV8825
- Comment fonctionne le module de pilote de moteur pas à pas DRV8825
- Comment connecter le pilote de moteur pas à pas DRV8825 à un Arduino et un moteur pas à pas
- Comment programmer un Arduino pour contrôler un moteur pas à pas via 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 de pilote de moteur pas à pas largement utilisé pour contrôler les moteurs pas à pas bipolaires dans des applications telles que les machines CNC, les imprimantes 3D et la robotique. Il dispose d'une limite de courant réglable, d'une protection contre la surchauffe et de six options de micro-pas, y compris le pas complet, 1/2, 1/4, 1/8, 1/16 et 1/32. Le module peut gérer jusqu'à 2,2A par bobine avec un refroidissement approprié et fonctionne à une large gamme de tensions de 8,2V à 45V, ce qui le rend adapté à une variété de moteurs pas à pas.
Pour en savoir plus sur le concept du moteur pas à pas comme : pas complet, micropas, moteur pas à pas unipolaire et moteur pas à pas bipolaire, consultez le tutoriel Arduino - Contrôle d'un moteur pas à pas avec le pilote L298N..
Il est impressionnant que le contrôle de la vitesse et de la direction d'un moteur pas à pas bipolaire, tel que le NEMA 17, ne nécessite que deux broches d'Arduino.
Schéma de broches du pilote de moteur pas à pas DRV8825
Le pilote de moteur pas à pas DRV8825 a 16 broches. Ci-dessous se trouve un brochage typique pour le module de pilote de moteur pas à pas DRV8825. Notez que certaines variations du module peuvent étiqueter les broches légèrement différemment, mais la fonctionnalité reste la même.
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 |
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 potentiomètre intégré que vous pouvez ajuster pour régler la limitation de courant, ce qui aide à éviter la surchauffe du moteur pas à pas et du pilote.
En résumé, ces 16 broches sont organisées dans les catégories suivantes en fonction de leur fonctionnalité :
- Broches connectées au moteur pas à pas : 1A, 1B, 2A, 2B.
- Broches connectées à Arduino pour le contrôle du pilote : ENABLE, M1, M2, M3, RESET, SLEEP.
- Broches connectées à Arduino pour le contrôle de la direction et de la vitesse du moteur : DIR, STEP.
- Broche pour rétroaction à Arduino : FAULT.
- Broches connectées à l'alimentation électrique du moteur : VMOT, GND (masse de l'alimentation du moteur).
- Broche connectée à la masse Arduino : GND (masse logique).
Le module DRV8825 ne nécessite pas d'alimentation logique de la carte Arduino, car il tire son alimentation de l'alimentation du moteur en utilisant son régulateur de tension interne de 3,3V. Cependant, il est essentiel de connecter la masse de l'Arduino à la broche GND (logique) du module DRV8825 pour assurer un bon fonctionnement et une référence de masse commune.
Configuration Microstep
Le pilote DRV8825 permet le micro-pas en divisant chaque pas en incréments plus petits. Cela est réalisé en appliquant des niveaux de courant intermédiaires aux bobines du moteur.
Par exemple, moteur NEMA 17 avec un angle de pas de 1,8° (200 pas par révolution) :
- Mode pas complet (1/1) : 200 pas par révolution
- Mode 1/2 pas : 400 pas par révolution
- Mode 1/4 pas : 800 pas par révolution
- Mode 1/8 pas : 1600 pas par révolution
- Mode 1/16 pas : 3200 pas par révolution
- Mode 1/32 pas : 6400 pas par révolution
En augmentant le niveau de micro-pas, le moteur se déplace plus doucement et précisément, mais au prix de pas supplémentaires nécessaires par révolution. Si vous continuez à utiliser le même taux d'impulsions de pas (impulsions par seconde), chaque révolution prendra plus de temps, ralentissant effectivement le moteur.
Cependant, si votre microcontrôleur peut émettre des impulsions assez rapidement pour correspondre au nombre de pas plus élevé, vous pouvez maintenir ou même augmenter la vitesse. La limite pratique dépend de la rapidité avec laquelle le pilote et votre microcontrôleur peuvent traiter ces impulsions sans perdre de pas.
Broches de sélection des micro-pas DRV8825
Le DRV8825 dispose de trois entrées de sélection de résolution de micro-pas : les broches M0, M1 et M2. En configurant ces broches avec des niveaux logiques spécifiques, 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 micropas sont équipées de résistances de pull-down intégrées qui les maintiennent dans un état BAS par défaut. Si elles ne sont pas connectées, le moteur fonctionnera en mode pas entier.
Comment ça marche
Pour contrôler un moteur pas à pas à l'aide du module DRV8825, vous avez besoin d'au moins deux broches Arduino : une pour la broche DIR et une pour la broche STEP. Le DRV8825 interprète ces signaux provenant de l'Arduino pour déplacer le moteur pas à pas avec précision.
- Broche STEP : Chaque impulsion sur la broche STEP fait avancer le moteur d'un micro-pas (ou d'un pas complet, selon votre configuration de micro-pas).
- Broche DIR : Détermine le sens de rotation du moteur.
Le conducteur utilise ensuite ces signaux, ainsi que ses propres réglages, pour envoyer des sorties 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 manières suivantes :
- Laissez-les déconnectés pour permettre au pilote de fonctionner avec les paramètres par défaut.
- Connectez-les directement à GND ou VCC pour un mode de fonctionnement fixe.
- Connectez-les aux broches Arduino afin de pouvoir contrôler ces fonctionnalités dynamiquement dans votre code.
Schéma de câblage entre Arduino, module DRV8825 et moteur pas à pas.
Le schéma de câblage suivant montre les connexions minimales nécessaires entre l'Arduino, le module DRV8825 et le moteur pas à pas. Avec cette configuration, le pilote DRV8825 fonctionne en mode par défaut (pas complet).
This image is created using Fritzing. Click to enlarge image
En détail :
- VMOT : Connectez à l'alimentation du moteur (par exemple, 12V).
- GND (pour le moteur) : Connectez à la masse de l'alimentation du moteur.
- 1A, 1B, 2A, 2B : Connectez aux bobines du moteur pas à pas.
- STEP : Connectez à la broche numérique D4 de l'Arduino.
- DIR : Connectez à la broche numérique D3 de l'Arduino.
- GND (pour la logique) : Connectez à la broche GND de l'Arduino.
- Autres broches : laissées non connectées.
Code Arduino
Étapes rapides
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
- Naviguez jusqu'à l'icône Libraries sur la barre de gauche de l'IDE Arduino.
- Recherchez “AccelStepper”, puis trouvez la bibliothèque AccelStepper par Mike McCauley.
- Cliquez sur le bouton Install pour installer la bibliothèque AccelStepper.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur Arduino
- Vous verrez le moteur tourner en avant et en arrière
Remarque : Lorsque le moteur fonctionne en mode pas complet, son mouvement peut ne pas être très fluide, ce qui est normal. Pour un mouvement plus fluide, activez le micro-pas en configurant les broches M1, M2 et M3.