Arduino Nano - Pilote de Moteur Pas à Pas DRV8825

Dans ce guide, nous explorerons le pilote de moteur pas à pas DRV8825 et apprendrons comment l'utiliser avec l'Arduino Nano pour gérer le moteur pas à pas. Nous aborderons :

Arduino Nano module DRV8825

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
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

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 pour gérer les moteurs pas à pas bipolaires souvent utilisés dans les machines CNC, les imprimantes 3D et les robots. Il offre un contrôle de courant réglable, des fonctionnalités de sécurité thermique et plusieurs options de micro-pas comme le pas complet, 1/2, 1/4, 1/8, 1/16 et 1/32. Ce module prend en charge jusqu'à 2,2A par bobine avec un refroidissement adéquat et fonctionne dans une plage de tension de 8,2V à 45V, s'adaptant à différents moteurs pas à pas.

Pour comprendre les bases des 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 Arduino Nano - Moteur pas à pas.

Il est incroyable que la gestion de la vitesse et de la direction d'un simple moteur pas à pas comme le NEMA 17 n'ait besoin que de deux broches Arduino Nano.

Brochage du pilote de moteur pas à pas DRV8825

Brochage du module DRV8825

Le pilote de moteur pas à pas DRV8825 possède 16 broches. Voici une disposition courante pour la carte du pilote de moteur pas à pas DRV8825. Gardez à l'esprit que certaines versions de la carte pourraient nommer les broches de manière légèrement différente, mais leurs fonctions sont 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
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 ajuster la limite de courant afin d'éviter que le moteur pas à pas et le pilote ne surchauffent.

En bref, ces 16 broches sont regroupées en types suivants selon leur fonction :

  • Broches reliées au moteur pas à pas : 1A, 1B, 2A, 2B.
  • Broches connectées à l'Arduino Nano pour contrôler le pilote : ENABLE, M1, M2, M3, RESET, SLEEP.
  • Broches connectées à l'Arduino Nano pour contrôler la direction et la vitesse du moteur : DIR, STEP.
  • Broche pour envoyer un retour à l'Arduino Nano : FAULT.
  • Broches connectées à la source d'alimentation du moteur : VMOT, GND (masse de l'alimentation du moteur).
  • Broche connectée à la masse de l'Arduino Nano : GND (masse logique).

Le module DRV8825 n'a pas besoin d'une alimentation de l'Arduino Nano pour sa logique car il reçoit de l'énergie de l'alimentation du moteur via son régulateur de tension intégré de 3,3V. Néanmoins, il est crucial de connecter la terre de l'Arduino Nano à la broche GND (logic) du module DRV8825 pour s'assurer qu'il fonctionne correctement et partage une masse commune.

Configuration de Microstep

Le pilote DRV8825 permet le micro-pas en divisant chaque pas en parties plus petites. Cela est réalisé en envoyant des niveaux de courant variables aux bobines du moteur.

Par exemple, un moteur NEMA 17 avec un angle de pas de 1,8 degré (200 pas par rotation) :

  • 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 augmentez le réglage de micro-pas, 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 (impulsions par seconde), chaque tour complet prendra plus de temps, ce qui ralentira le moteur.

Mais 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 le pilote et votre microcontrôleur peuvent gérer ces impulsions sans manquer de pas.

Broches de sélection des 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 différentes :

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 petites broches de sélection sont équipées de résistances intégrées qui les tirent vers le bas, les maintenant normalement à l'état BAS. Si elles ne sont pas connectées, le moteur fonctionnera en mode pas entier.

Comment ça marche

Pour faire fonctionner un moteur pas à pas avec le module DRV8825, vous avez besoin d'au moins deux broches Arduino Nano : une pour la broche DIR et une autre pour la broche STEP. Le DRV8825 décode ces signaux provenant de l'Arduino Nano pour déplacer avec précision le moteur pas à pas.

  • Broche STEP : Chaque impulsion sur la broche STEP déplace le moteur d'un petit pas ou d'un pas complet, en fonction de votre configuration.
  • Broche DIR : Détermine la direction de rotation du moteur.

Le conducteur utilise ces signaux et ses 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) selon l'une des trois méthodes :

  • Déconnectez-les pour que le pilote fonctionne avec les paramètres de base.
  • Connectez-les directement à GND ou VCC pour un mode stable.
  • Reliez-les aux broches de l'Arduino Nano pour gérer ces fonctions de manière active dans votre programmation.

Schéma de câblage entre Arduino Nano, module DRV8825 et moteur pas à pas

Le schéma ci-dessous montre les connexions de base requises entre l'Arduino Nano, le module DRV8825 et le moteur pas à pas. Avec cette configuration, le pilote DRV8825 fonctionne en mode standard (pas complet).

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

This image is created using Fritzing. Click to enlarge image

En profondeur :

  • VMOT : Connecter à la source d'alimentation du moteur (par exemple, 12V).
  • GND (pour le moteur) : Relier à la masse de l'alimentation du moteur.
  • 1A, 1B, 2A, 2B : Connecter aux bobines du moteur pas à pas.
  • STEP : Relier à la broche numérique D4 de l'Arduino Nano.
  • DIR : Relier à la broche numérique D3 de l'Arduino Nano.
  • GND (pour la logique) : Connecter à la broche GND de l'Arduino Nano.
  • Autres broches : Ne pas connecter.

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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/arduino-nano-drv8825-stepper-motor-driver */ // Include the AccelStepper Library #include <AccelStepper.h> // Define the Arduino Nano pin connections #define STEP_PIN 4 #define DIR_PIN 3 // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor, // initial speed and the target position stepper.setMaxSpeed(1000); stepper.setAcceleration(200); 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

  • Copiez le code et démarrez l'IDE Arduino.
  • Allez à la section Libraries dans le menu de gauche de l'IDE Arduino.
  • Recherchez "AccelStepper" et localisez la bibliothèque AccelStepper par Mike McCauley.
  • Appuyez sur le bouton Install pour ajouter la bibliothèque AccelStepper.
Arduino Nano AccelStepper bibliothèque
  • Copiez le code et ouvrez-le dans l'Arduino IDE
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code sur l'Arduino Nano
  • Vous verrez le moteur se déplacer d'avant en arrière

Lorsque vous utilisez le moteur en mode pas à pas complet, son mouvement peut ne pas être très fluide, ce qui est courant. Pour un mouvement plus fluide, activez le micro-pas en configurant les 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!