Arduino Nano ESP32 - Moteur pas à pas 28BYJ-48 avec pilote ULN2003
Dans ce tutoriel, nous couvrirons les sujets suivants :
- Contrôle d'un seul moteur pas à pas 28BYJ-48 avec un Arduino Nano ESP32 et un pilote ULN2003.
- Gestion de plusieurs moteurs pas à pas 28BYJ-48 à l'aide d'un Arduino Nano ESP32 et d'un pilote ULN2003.
Les moteurs pas à pas excellent dans le contrôle précis de 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 comprendre les moteurs pas à pas consiste à expérimenter avec les moteurs pas à pas 28BYJ-48. Habituellement, ces moteurs sont fournis avec des cartes de commande basées sur le ULN2003, ce qui simplifie grandement leur utilisation.
Préparation du matériel
1 | × | Arduino Nano ESP32 | |
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) Screw Terminal Adapter 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) |
À propos du moteur pas à pas 28BYJ-48
Selon la fiche technique, le moteur 28BYJ-48, lorsqu'il fonctionne en mode pas entier, avance par incréments de 11,25 degrés, ce qui donne 32 pas par révolution complète (calculé comme suit : 360°/11,25° = 32).
De plus, le moteur intègre un réducteur 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 pilotage de moteur pas à pas ULN2003
Le ULN2003 se distingue comme un module de commande de moteur largement utilisé pour les moteurs pas à pas. Les caractéristiques principales 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 servent pas seulement un but pratique mais ajoutent également un élément visuel au processus de pas.
- Un cavalier marche/arrêt est intégré dans le module, permettant l'isolation de l'alimentation au 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 du ULN2003
Le module ULN2003 comprend 6 broches et un connecteur femelle :
- Broche IN1 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur l'Arduino Nano ESP32.
- Broche IN2 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur l'Arduino Nano ESP32.
- Broche IN3 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur l'Arduino Nano ESP32.
- Broche IN4 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur l'Arduino Nano ESP32.
- Broche GND : est une broche de masse commune. Elle DOIT être connectée aux GND de l'Arduino Nano ESP32 et à 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 externe correspond aux exigences de tension du moteur pas à pas. Par exemple, si votre moteur pas à pas fonctionne sur du 12V DC, il est crucial d'utiliser une alimentation de 12V. Dans le cas du moteur pas à pas 28BYJ-48, qui fonctionne sur du 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 sur l'Arduino Nano 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
Veuillez noter que nous n'avons pas à nous soucier 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 complet est souvent suffisante. Cependant, des explications détaillées sur les 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 est qu'il existe de nombreuses bibliothèques disponibles qui gèrent cette complexité pour nous. Tout ce que nous avons à faire est d'utiliser la bibliothèque appropriée, simplifiant ainsi le contrôle des moteurs pas à pas dans nos projets.
L'IDE Arduino comprend une bibliothèque Stepper intégrée, mais nous déconseillons de l'utiliser pour les raisons suivantes :
- Blocage de la nature : 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 pendant qu'elle contrôle le moteur pas à pas.
- Fonctionnalités limitées : La bibliothèque Stepper intégrée peut ne pas fournir 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 prend en charge une accélération et une décélération douces, permettant un contrôle plus précis.
- Conduite en Pas Entier et Demi-Pas : Vous pouvez choisir entre les modes de conduite en pas entier et en 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 concourante.
Toutefois, il est important de noter que la bibliothèque présente un inconvénient : elle ne prend pas en charge la commande par micro-pas.
Code Arduino Nano ESP32
Étapes rapides
Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :
- Si vous êtes novice avec l'Arduino Nano ESP32, reportez-vous au tutoriel sur comment configurer l'environnement pour l'Arduino Nano ESP32 dans l'IDE Arduino.
- Câblez les composants conformément au schéma fourni.
- Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
- Ouvrez le gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'IDE Arduino.
- 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 Arduino Nano 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