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 :

Arduino Nano ESP32 module DRV8825

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×Stepper Motor Nema 17
1×DRV8825 Stepper Motor Driver
1×Expansion Board for DRV8825 Motor Driver
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano
1×(Recommended) Breakout Expansion Board for Arduino Nano
1×(Recommended) Power Splitter For Arduino Nano ESP32

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À 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

Brochage du module DRV8825

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).

Schéma de câblage du pilote de moteur pas à pas Arduino Nano ESP32 DRV8825

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

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-nano-esp32/arduino-nano-esp32-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define DIR_PIN D3 // The Arduino Nano ESP32 pin connected to DIR pin of DRV8825 module #define STEP_PIN D4 // The Arduino Nano ESP32 pin connected to STEP pin of DRV8825 module // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor stepper.setMaxSpeed(1000); stepper.setAcceleration(200); // set speed and the target position stepper.setSpeed(200); stepper.moveTo(200); } void loop() { // Change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // Move the motor one step }

É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.
Arduino Nano ESP32 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.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!