ESP32 - Moteur pas à pas 28BYJ-48 avec pilote ULN2003
Dans ce tutoriel, nous aborderons les sujets suivants :
- Contrôler un seul moteur pas à pas 28BYJ-48 avec un ESP32 et un pilote ULN2003.
- Gérer plusieurs moteurs pas à pas 28BYJ-48 à l'aide d'un ESP32 et d'un pilote ULN2003.
Les moteurs pas à pas excellent dans le contrôle précis de la position, car ils divisent une révolution complète en "pas" discrets. Ces moteurs trouvent des applications dans une large gamme d'appareils, incluant les imprimantes, les imprimantes 3D, les machines CNC et les systèmes d'automatisation industrielle.
Une méthode abordable pour mieux comprendre les moteurs pas à pas consiste à expérimenter avec des moteurs pas à pas 28BYJ-48. Ces moteurs sont généralement fournis avec des cartes de commande basées sur le ULN2003, ce qui simplifie grandement leur utilisation.
Préparation du matériel
1 | × | ESP-WROOM-32 Dev Module | |
1 | × | USB Cable Type-C | |
1 | × | 28BYJ-48 stepper motor + ULN2003 Driver Module | |
1 | × | 5V Power Adapter | |
1 | × | DC Power Jack | |
1 | × | Jumper Wires | |
1 | × | (Recommended) ESP32 Screw Terminal Adapter |
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du moteur pas à pas 28BYJ-48
Selon la fiche technique, le moteur 28BYJ-48, lorsqu'il fonctionne en mode pas complet, se déplace par incréments de 11,25 degrés, ce qui résulte en 32 pas par révolution complète (comme calculé : 360°/11,25° = 32).
De plus, le moteur intègre un ensemble de réduction de 1/64, augmentant ainsi efficacement son nombre de pas à 32 x 64, ce qui donne 2048 pas par révolution. Chacun de ces 2048 pas correspond à une rotation de 360°/2048, soit environ 0,1758 degrés par pas.
Conclusion : si le moteur effectue 2048 pas (en mode pas entier), le moteur effectue une révolution.
Brochage
Le moteur pas à pas 28BYJ-48 comprend 5 broches. Nous n'avons pas besoin de nous soucier des détails de ces broches. Il suffit de le brancher sur le connecteur du pilote de moteur ULN2003.
À propos du module de commande de moteur pas à pas ULN2003
Le ULN2003 se distingue comme un module de commande de moteur largement utilisé pour les moteurs pas à pas. Les principales caractéristiques du module incluent :
- Quatre LED qui s'illuminent pour indiquer l'activité des quatre lignes d'entrée de contrôle, reflétant efficacement l'état actuel de pas du moteur. Ces LED ne remplissent pas seulement un rôle pratique, mais ajoutent également un élément visuel au processus de pas.
- Un cavalier ON/OFF est intégré au module, permettant l'isolation de l'alimentation pour le moteur pas à pas connecté. Cette fonctionnalité offre un moyen pratique de contrôler l'alimentation du moteur, permettant une gestion efficace de l'énergie.
Brochage ULN2003
Le module ULN2003 comprend 6 broches et un connecteur femelle :
- Broche IN1 : est utilisée pour commander le moteur. Connectez-la à une broche de sortie sur ESP32.
- Broche IN2 : est utilisée pour commander le moteur. Connectez-la à une broche de sortie sur ESP32.
- Broche IN3 : est utilisée pour commander le moteur. Connectez-la à une broche de sortie sur ESP32.
- Broche IN4 : est utilisée pour commander le moteur. Connectez-la à une broche de sortie sur ESP32.
- Broche GND : est une broche de masse commune. Elle DOIT être connectée aux GNDs de l'ESP32 et de l'alimentation externe.
- Broche VDD : fournit l'alimentation pour le moteur. Connectez-la à l'alimentation externe.
- Connecteur du moteur : c'est ici que le moteur se branche.
※ NOTE THAT:
Lorsqu'il s'agit d'alimenter des moteurs pas à pas, il est important de suivre ces directives :
- Assurez-vous que la tension de l'alimentation électrique externe correspond aux exigences de tension du moteur pas à pas. Par exemple, si votre moteur pas à pas fonctionne sous 12V DC, il est crucial d'utiliser une alimentation de 12V. Dans le cas du moteur pas à pas 28BYJ-48, qui fonctionne sous 5V DC, il est impératif d'utiliser une alimentation de 5V.
- Il est important de noter que même si un moteur pas à pas est conçu pour fonctionner avec une alimentation de 5V, ne connectez PAS la broche VDD à la broche 5V de l'ESP32. Au lieu de cela, reliez la broche VDD à une source d'alimentation externe de 5V. Cette mesure de précaution est essentielle car les moteurs pas à pas peuvent consommer une quantité significative de puissance, qui pourrait dépasser les capacités de l'alimentation de l'ESP32, causant potentiellement des problèmes ou des dommages.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
Veuillez noter que nous n'avons pas besoin de nous préoccuper de la couleur des fils du moteur pas à pas. Nous devons simplement brancher le connecteur mâle (sur le moteur pas à pas 28BYJ-48) au connecteur femelle (sur le pilote ULN2003).
Comment programmer pour contrôler un moteur pas à pas
Lorsqu'il s'agit de contrôler un moteur pas à pas, il existe trois méthodes principales :
- Pas complet
- Demi-pas
- Micro-pas
Pour les applications de base, la méthode pas entier est souvent suffisante. Cependant, des explications détaillées des trois méthodes seront fournies dans la dernière partie de ce tutoriel. Il convient de noter que la programmation pour ces méthodes peut être complexe. La bonne nouvelle, c'est qu'il existe de nombreuses bibliothèques disponibles qui gèrent cette complexité pour nous. Tout ce que nous devons faire, c'est utiliser la bibliothèque appropriée, simplifiant ainsi le contrôle des moteurs pas à pas dans nos projets.
L'IDE Arduino inclut une bibliothèque Stepper intégrée, mais nous déconseillons de l'utiliser pour les raisons suivantes :
- Nature bloquante : Cette bibliothèque fonctionne de manière bloquante, ce qui signifie qu'elle monopolise les ressources de l'ESP32, l'empêchant de réaliser d'autres tâches tout en contrôlant le moteur pas à pas.
- Fonctionnalités limitées : La bibliothèque Stepper intégrée peut ne pas offrir toutes les fonctions et caractéristiques nécessaires pour votre projet.
Au lieu de cela, nous recommandons d'utiliser la bibliothèque AccelStepper. Cette bibliothèque offre plusieurs avantages, notamment :
- Accélération et Décélération : Il permet une accélération et une décélération douces, permettant un contrôle plus précis.
- Conduite en Pas complet et Demi-pas : Vous pouvez choisir entre les modes de conduite en pas complet et demi-pas pour votre moteur pas à pas.
- Plusieurs moteurs pas à pas simultanés : AccelStepper permet de contrôler plusieurs moteurs pas à pas simultanément, chaque moteur se déplaçant de manière indépendante et concurrente.
Cependant, il est important de noter que la bibliothèque présente un inconvénient : elle ne prend pas en charge la commande de micro-pas.
Code ESP32
Étapes rapides
- Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour l'ESP32 sur Arduino IDE.
- Réalisez le câblage comme sur l'image ci-dessus.
- Connectez la carte ESP32 à votre PC via un câble micro USB.
- Ouvrez Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 (par exemple, Module de développement ESP32) et le port COM.
- Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
- Recherchez “AccelStepper”, puis trouvez la bibliothèque AccelStepper de 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 l'ESP32
- Observez la rotation du moteur. Il devrait :
- Effectuer une révolution dans le sens horaire, puis
- Effectuer deux révolutions dans le sens antihoraire, puis
- Effectuer deux révolutions dans le sens horaire.
- Voyez le résultat dans le moniteur série.
Ce processus est répété à l'infini.
Comment contrôler plusieurs moteurs pas à pas 28BYJ-48
Apprenons à contrôler deux moteurs pas à pas indépendamment en même temps.
Schéma de câblage pour deux moteurs pas à pas 28BYJ-48
This image is created using Fritzing. Click to enlarge image