ESP32 S3 - Driver de moteur pas à pas DRV8825

L'ESP32 S3 s'associe naturellement au driver de moteur pas à pas DRV8825 pour offrir un contrôle de mouvement précis et programmable en utilisant seulement deux broches GPIO. Ce tutoriel vous guide depuis le premier câblage jusqu'à l'exécution du code, afin que vous puissiez faire avancer et reculer un moteur pas à pas NEMA 17 en quelques minutes.

Ce que vous allez construire :

  1. Un driver de moteur pas à pas DRV8825 câblé à votre carte ESP32 S3
  2. Un moteur pas à pas NEMA 17 tournant en avant et en arrière sous le contrôle d'AccelStepper
  3. Une configuration d'alimentation sûre avec une alimentation dédiée de 12 V pour le moteur
  4. Une base pour les imprimantes 3D, les machines CNC, et les projets de robotique de précision
ESP32 S3 DRV8825 Stepper Motor Driver

À propos du driver de moteur pas à pas DRV8825

Le DRV8825 est un driver de moteur pas à pas bipolaire haute performance qui convertit de simples signaux de pas et de direction provenant d'un microcontrôleur en courants de bobine précisément synchronisés. Il prend en charge le microstepping jusqu'à une résolution de 1/32, rendant le mouvement nettement plus fluide et plus silencieux que le fonctionnement en pas complet. Un potentiomètre réglable intégré vous permet de régler la limite de courant pour correspondre aux spécifications de votre moteur, et la protection intégrée contre les surintensités et les surchauffes protège à la fois le driver et le moteur pendant les longues périodes de fonctionnement.

Spécifications clés

  • Plage de tension : Alimentation moteur de 8,2 V à 45 V
  • Capacité de courant : Jusqu'à 2,2 A par bobine avec un refroidissement adéquat
  • Microstepping : Prend en charge du pas complet jusqu'à une résolution de 1/32 de pas
  • Protection intégrée : Fonctions de coupure en cas de surintensité et de surchauffe
  • Limite de courant réglable : Potentiomètre pour un ajustement facile
  • Conception compacte : Parfait pour les imprimantes 3D, les machines CNC, et la robotique
  • Faible nombre de broches : Contrôle avec seulement 2 broches de l'ESP32 S3
  • Régulateur intégré : Alimentation logique 3,3 V dérivée de l'alimentation moteur
  • Convivial pour les débutants : Interface simple avec contrôle de pas et de direction

Pour comprendre les concepts de moteur pas à pas tels que le pas complet, le microstepping, le moteur pas à pas unipolaire, et le moteur pas à pas bipolaire, consultez le guide ESP32 S3 - Stepper Motor.

Brochage du driver de moteur pas à pas DRV8825

Le module DRV8825 expose 16 broches couvrant les sorties moteur, les rails d'alimentation, et les entrées de configuration. La liste numérotée suivante décrit le rôle de chaque broche.

DRV8825 module Pinout
  1. VMOT — Entrée d'alimentation moteur (8,2 V à 45 V)
  2. GND (Moteur) — Masse pour l'alimentation moteur
  3. 2B, 2A — Connexions de sortie vers la bobine B du moteur pas à pas
  4. 1A, 1B — Connexions de sortie vers la bobine A du moteur pas à pas
  5. FAULT — Sortie de détection de défaut (passe à LOW en cas de surintensité ou de surchauffe)
  6. GND (Logique) — Référence de masse pour les signaux de commande (connecter au GND de l'ESP32 S3)
  7. ENABLE — Broche d'activation active à l'état LOW (LOW = moteur activé, HIGH = moteur désactivé)
  8. M0, M1, M2 — Broches de sélection de résolution de microstepping
  9. RESET — Broche de réinitialisation active à l'état LOW (LOW = réinitialise le driver)
  10. SLEEP — Broche de mode veille active à l'état LOW (LOW = mode veille basse consommation)
  11. STEP — Broche d'entrée de pas (un front montant avance le moteur d'un microstep)
  12. DIR — Broche de contrôle de direction (définit le sens de rotation)
  13. Potentiomètre — Contrôle réglable de la limite de courant

Regroupement des broches par fonction :

  • Connexions moteur : 1A, 1B, 2A, 2B
  • Contrôle moteur : DIR, STEP
  • Configuration du driver : ENABLE, M0, M1, M2, RESET, SLEEP
  • Sortie de statut : FAULT
  • Alimentation moteur : VMOT, GND (moteur)
  • Masse logique : GND (logique)

Important : Connectez toujours le GND de l'ESP32 S3 à la broche GND (logique) du DRV8825 pour établir une référence de masse commune. Le DRV8825 alimente ses circuits logiques depuis l'alimentation moteur via son régulateur 3,3 V intégré, donc aucune alimentation logique séparée n'est nécessaire.

Configuration du microstepping

Le DRV8825 permet le microstepping en subdivisant électroniquement chaque pas complet en incréments plus petits, ce qui donne un mouvement plus fluide, moins de vibrations, et un fonctionnement plus silencieux au prix de davantage d'impulsions de pas par tour.

Exemples de résolutions de microstepping pour un moteur NEMA 17 (angle de pas de 1,8°, 200 pas/tour) :

  • Mode pas complet : 200 pas par tour
  • Mode demi-pas : 400 pas par tour
  • Mode quart de pas (1/4) : 800 pas par tour
  • Mode huitième de pas (1/8) : 1 600 pas par tour
  • Mode seizième de pas (1/16) : 3 200 pas par tour
  • Mode trente-deuxième de pas (1/32) : 6 400 pas par tour

Avantages d'un microstepping plus élevé :

  • Mouvement moteur plus fluide avec moins de vibrations
  • Précision de positionnement plus élevée
  • Fonctionnement plus silencieux
  • Plus de pas nécessaires par tour (vitesse plus lente au même taux d'impulsions)

Considérations sur la vitesse :

  • Un microstepping plus élevé nécessite plus d'impulsions de pas par tour
  • La vitesse du moteur dépend du taux d'impulsions de l'ESP32 S3
  • Des taux d'impulsions plus rapides maintiennent la vitesse avec un microstepping plus élevé
  • La vitesse maximale est limitée par les capacités du driver et du microcontrôleur

Broches de sélection du microstepping du DRV8825

Configurez la résolution de microstepping en réglant les broches M0, M1, et M2 sur le driver DRV8825. Les trois broches ont des résistances de tirage vers le bas internes et sont par défaut à LOW, donc les laisser non connectées place le driver en mode pas complet.

Tableau de sélection du microstepping :

Broche M0 Broche M1 Broche M2 Résolution de microstepping
Low Low Low Pas complet
High Low Low Demi-pas
Low High Low 1/4 de pas
High High Low 1/8 de pas
Low Low High 1/16 de pas
High Low High 1/32 de pas
Low High High 1/32 de pas
High High High 1/32 de pas

Comment ça fonctionne

Le DRV8825 traduit les signaux numériques simples de l'ESP32 S3 en courants de bobine soigneusement synchronisés dont un moteur pas à pas bipolaire a besoin pour tourner. À chaque front montant de la broche STEP, le driver avance le moteur d'un microstep (ou d'un pas complet, selon la configuration de M0–M2), tandis que la broche DIR sélectionne le sens de rotation horaire ou antihoraire. Seulement deux broches GPIO de l'ESP32 S3 sont nécessaires pour le cas d'usage le plus courant, et des broches supplémentaires comme ENABLE, RESET, et SLEEP peuvent rester non connectées pour utiliser les valeurs par défaut, ou être reliées à des broches GPIO lorsqu'un contrôle dynamique est nécessaire.

Fonctionnement de base :

  • Broche STEP : Chaque front montant déplace le moteur d'un microstep (ou d'un pas complet selon la configuration)
  • Broche DIR : Contrôle le sens de rotation (HIGH ou LOW)
  • Logique du driver : Convertit les signaux de pas et de direction en courants de bobine appropriés
  • Sorties moteur : Les broches 1A, 1B, 2A, 2B délivrent un courant contrôlé aux bobines du moteur

Configurations de broches optionnelles :

Vous pouvez configurer les broches supplémentaires du DRV8825 (ENABLE, M0, M1, M2, RESET, SLEEP) de trois manières :

  • Laisser non connectées : Le driver utilise les réglages par défaut (pas complet, activé)
  • Connecter au GND ou au VCC : Configuration fixe (par exemple, toujours activé ou un mode de microstepping spécifique)
  • Connecter aux broches de l'ESP32 S3 : Contrôle dynamique via votre code

Schéma de câblage

Connectez votre ESP32 S3, le driver de moteur pas à pas DRV8825, et le moteur pas à pas NEMA 17 en suivant ce schéma de câblage. Les fils de bobine du moteur se connectent aux sorties 1A/1B et 2A/2B sur le driver, tandis que les signaux STEP et DIR proviennent des broches GPIO de l'ESP32 S3.

ESP32 S3 DRV8825 stepper motor driver wiring diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Notes de sécurité

Ne connectez et ne déconnectez jamais le moteur pas à pas pendant que l'alimentation est sous tension — cela peut générer des pics de tension qui endommagent définitivement le DRV8825. Vérifiez toujours que la tension d'alimentation du moteur correspond aux spécifications de votre moteur pas à pas (typiquement 12 V pour les moteurs NEMA 17) avant de mettre sous tension, et confirmez que le GND de l'ESP32 S3 est partagé avec le GND logique du DRV8825 avant d'envoyer des impulsions de pas.

Broche DRV8825 Connexion Notes
VMOT Alimentation 12V (+) Entrée d'alimentation moteur
GND (Motor) Alimentation 12V (-) Masse d'alimentation moteur
1A Fil 1 de la bobine A du moteur pas à pas Connexion bobine A
1B Fil 2 de la bobine A du moteur pas à pas Connexion bobine A
2A Fil 1 de la bobine B du moteur pas à pas Connexion bobine B
2B Fil 2 de la bobine B du moteur pas à pas Connexion bobine B
STEP Broche D10 de l'ESP32 S3 Signal de contrôle de pas
DIR Broche D9 de l'ESP32 S3 Signal de contrôle de direction
GND (Logic) GND de l'ESP32 S3 Référence de masse commune
ENABLE Non connecté Activé par défaut
M0 Non connecté Mode pas complet
M1 Non connecté Mode pas complet
M2 Non connecté Mode pas complet
RESET Non connecté Fonctionnement normal
SLEEP Non connecté Fonctionnement normal

Cette configuration de base fait fonctionner le moteur pas à pas en mode pas complet avec les réglages par défaut.

Code ESP32 S3

Le code suivant montre comment contrôler un moteur pas à pas avec l'ESP32 S3 et le driver DRV8825 à l'aide de la bibliothèque AccelStepper. Il configure l'interface du driver, définit une vitesse et une accélération maximales, puis commande au moteur de tourner de 200 pas en avant et de 200 pas en arrière dans une boucle continue — la lecture des commentaires en ligne vous donnera une explication ligne par ligne du fonctionnement de chaque section.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define DIR_PIN 17 // The ESP32 S3 pin connected to DIR pin of DRV8825 module #define STEP_PIN 18 // The ESP32 S3 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

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Configurez l'Arduino IDE pour l'ESP32 S3 en suivant le guide ESP32 S3 software installation.
  3. Câblez le DRV8825, le moteur pas à pas, et l'alimentation 12 V à l'ESP32 S3 selon le schéma de câblage ci-dessus.
  4. Connectez la carte ESP32 S3 à votre ordinateur avec un câble USB Type-C.
  5. Ouvrez l'Arduino IDE sur votre ordinateur.
  6. Sélectionnez la carte ESP32 S3 et son port COM correspondant sous Tools.
  7. Ouvrez le gestionnaire de bibliothèques en cliquant sur l'icône Libraries dans la barre latérale gauche.
  8. Tapez "AccelStepper" dans la zone de recherche, trouvez la bibliothèque par Mike McCauley, et cliquez sur Install.
  • Search for AccelStepper created by Mike McCauley and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
AccelStepper by Mike McCauley
Provides an object-oriented interface for 2, 3 or 4 pin stepper motors and motor drivers. More info
1.64
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Copiez le code ci-dessus et collez-le dans un nouveau croquis Arduino IDE.
  2. Cliquez sur le bouton Upload pour compiler et transférer le code vers l'ESP32 S3.
How to upload ESP32 S3 code on Arduino IDE
  1. Observez le moteur pas à pas tourner en avant et en arrière en continu.
  2. Astuce pro : Pour un fonctionnement moteur plus fluide et plus silencieux, activez le microstepping en connectant M0, M1, et M2 aux broches GPIO de l'ESP32 S3 et en les réglant sur HIGH ou LOW dans votre code pour sélectionner la résolution souhaitée.

Note : Le mode pas complet produit un mouvement par pas visible. Activez le microstepping pour un fonctionnement plus fluide et plus silencieux en configurant les broches M0, M1, et M2.

Sortie du moniteur série

Après avoir téléversé le code, ouvrez le Serial Monitor à 115200 bauds pour voir le statut du moteur. La sortie ci-dessous reflète une session typique enregistrée en 2026.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
ESP32 S3 DRV8825 Stepper Motor Control Initializing motor... [2026-01-15 09:00:01] Motor moving forward 200 steps [2026-01-15 09:00:03] Step position: 50 [2026-01-15 09:00:05] Step position: 100 [2026-01-15 09:00:07] Step position: 150 [2026-01-15 09:00:09] Step position: 200 [2026-01-15 09:00:11] Motor moving backward 200 steps [2026-01-15 09:00:13] Step position: 150 [2026-01-15 09:00:15] Step position: 100 [2026-01-15 09:00:17] Step position: 50 [2026-01-15 09:00:19] Step position: 0 [2026-01-15 09:00:21] Motor moving forward 200 steps [2026-01-15 09:00:23] Step position: 50 [2026-01-15 09:00:25] Step position: 100 [2026-01-15 09:00:27] Step position: 150 [2026-01-15 09:00:29] Step position: 200
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

L'ESP32 S3 associé au driver de moteur pas à pas DRV8825 ouvre la voie à une large gamme de projets de contrôle de mouvement de précision, des prototypes de bureau aux systèmes d'automatisation de niveau production :

  1. Imprimante 3D : Construisez une imprimante 3D personnalisée avec un contrôle précis des axes X, Y, et Z piloté par plusieurs drivers DRV8825.
  2. Machine CNC : Créez une mini fraiseuse CNC ou une graveuse pour circuits imprimés et petites pièces mécaniques.
  3. Curseur de caméra : Concevez un curseur de caméra automatisé pour une photographie en accéléré fluide et motorisée.
  4. Bras robotique : Construisez un bras robotique multi-axes avec un positionnement précis des articulations pour des tâches de préhension et de placement.
  5. Ouvre-rideaux automatisé : Fabriquez des rideaux intelligents qui s'ouvrent et se ferment selon un horaire ou via une commande WiFi.
  6. Support de caméra pan-tilt : Créez un support de caméra motorisé à deux axes pour la vidéosurveillance ou la photographie à distance.
  7. Distributeur automatique pour animaux : Concevez un distributeur pour animaux programmé avec contrôle des portions utilisant un mécanisme de trappe piloté par moteur pas à pas.
  8. Traqueur de panneau solaire : Construisez un système de suivi solaire qui fait pivoter un panneau solaire pour une récolte d'énergie maximale.

Regardez la démonstration vidéo étape par étape de ce projet ESP32 S3 ci-dessous.

Défiez-vous

Une fois que votre moteur pas à pas fonctionne de manière fiable avec l'ESP32 S3 et le DRV8825, essayez ces défis pour approfondir votre compréhension du contrôle moteur et de la programmation embarquée :

  1. Débutant : Ajoutez un potentiomètre pour contrôler la vitesse du moteur en temps réel en lisant une entrée analogique et en la mappant à la vitesse maximale d'AccelStepper.
  2. Débutant : Ajoutez des indicateurs LED pour montrer la direction du moteur — une LED verte pour l'avant et une LED rouge pour l'arrière.
  3. Intermédiaire : Activez le microstepping en câblant M0, M1, et M2 aux broches GPIO de l'ESP32 S3 et basculez entre les résolutions dans votre code.
  4. Intermédiaire : Ajoutez des boutons-poussoirs pour démarrer et arrêter le mouvement du moteur, et un troisième bouton pour basculer la direction.
  5. Avancé : Créez un système de contrôle de position qui accepte des commandes du Serial Monitor pour déplacer le moteur vers des positions de pas spécifiques.
  6. Avancé : Construisez un système de contrôle de mouvement à deux axes utilisant deux drivers DRV8825 et moteurs pas à pas pour du traçage X-Y ou de la gravure laser.
  7. Avancé : Implémentez des profils d'accélération et de décélération fluides pour des mouvements rapides et précis qui démarrent et s'arrêtent sans perdre de pas.

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !