ESP8266 - Moteur pas à pas 28BYJ-48 avec driver ULN2003
Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler un moteur pas à pas 28BYJ-48 à l'aide d'un driver ULN2003. En détail, nous allons apprendre :
- Comment connecter ESP8266 au moteur pas à pas 28BYJ-48 via le pilote ULN2003
- Comment programmer ESP8266 pour contrôler un moteur pas à pas 28BYJ-48 via le pilote ULN2003
Préparation du matériel
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
Les moteurs pas à pas sont idéaux pour le contrôle de position. Ils décomposent une révolution complète en une série de "pas" égaux. Ces moteurs sont utilisés dans une variété d'appareils, y compris les imprimantes, les imprimantes 3D, les machines CNC et l'automatisation industrielle.
L'une des méthodes économiques pour acquérir des connaissances sur les moteurs pas à pas consiste à utiliser des moteurs pas à pas 28BYJ-48. Ils sont généralement fournis avec une carte pilote basée sur ULN2003, ce qui les rend faciles à utiliser.
Comme indiqué dans la fiche technique, le moteur 28BYJ-48 fonctionne en mode pas entier, chaque pas représentant une rotation de 11,25°. Par conséquent, il y a 32 pas dans une révolution complète (360°/11,25° = 32).
De plus, le moteur dispose d'un réducteur de 1/64. Cela se traduit par 32 x 64 = 2048 pas. Chaque pas est équivalent à 360°/2048 = 0,1758°.
Conclusion : Si le moteur est réglé en mode pas entier, il faudra 2048 pas pour qu'il effectue une révolution complète.
Le moteur pas à pas 28BYJ-48 utilisant le brochage du pilote ULN2003
Le moteur pas à pas 28BYJ-48 dispose de 5 broches. Nous n'avons pas à nous préoccuper des spécificités de ces broches. Tout ce que nous avons à faire est de le brancher sur le connecteur du pilote de moteur ULN2003.
Module pilote de moteur pas à pas ULN2003
Le ULN2003 est un module de pilotage de moteur largement utilisé pour les moteurs pas à pas.
- Il possède quatre LED qui affichent l'activité de quatre lignes d'entrée de contrôle, ce qui produit un effet impressionnant lorsque le moteur est en mouvement.
- De plus, il comprend un cavalier marche/arrêt pour séparer l'alimentation du moteur pas à pas.
Brochage ULN2003
Le module ULN2003 possède 6 broches et un connecteur femelle :
- IN1 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
- IN2 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
- IN3 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
- IN4 : Cette broche est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur l'ESP8266.
- GND : Il s'agit d'une broche de terre commune et doit être connectée aux GNDs à la fois de l'ESP8266 et de l'alimentation externe.
- VDD : Cette broche fournit l'alimentation pour le moteur et doit être connectée à l'alimentation externe.
- Connecteur moteur : C'est ici que le moteur est branché.
※ NOTE THAT:
- La tension de l'alimentation externe doit correspondre à la tension du moteur pas à pas. Par exemple, si un moteur pas à pas fonctionne sous 12V DC, une alimentation de 12V doit être utilisée. Dans le cas d'un moteur pas à pas 28BYJ-48, qui fonctionne avec 5V DC, une alimentation de 5V doit être utilisée.
- Cependant, même si le moteur pas à pas nécessite une alimentation de 5V, la broche VDD ne doit PAS être connectée à la broche 5V sur l'ESP8266. Au lieu de cela, elle doit être connectée à une alimentation externe de 5V, car le moteur pas à pas consomme trop de puissance.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.
Il n'est pas nécessaire de prendre en compte la couleur des fils du moteur pas à pas. Nous devons simplement brancher le connecteur mâle du moteur pas à pas 28BYJ-48 dans le connecteur femelle du pilote ULN2003.
Comment programmer pour contrôler un moteur pas à pas
Il existe trois manières de contrôler un moteur pas à pas :
- Pas complet
- Demi-pas
- Micro-pas
Pour les applications de base, nous pouvons utiliser la méthode pas entier. Les spécificités des trois méthodes seront discutées dans la dernière partie de ce tutoriel. Programmer ces méthodes peut être complexe. Heureusement, de nombreuses bibliothèques ont déjà fait le travail pour nous, donc tout ce que nous avons à faire est d'utiliser la bibliothèque.
L'IDE Arduino inclut une bibliothèque Stepper. Cependant, nous ne recommandons pas d'utiliser cette bibliothèque pour les raisons suivantes :
- La bibliothèque est bloquante, ce qui signifie qu'elle empêche l'ESP8266 d'effectuer d'autres tâches pendant la commande du moteur pas à pas.
- Elle n'offre pas suffisamment de fonctions.
Au lieu de cela, nous vous suggérons d'utiliser la bibliothèque AccelStepper. Cette bibliothèque fournit :
- Accélération
- Décélération
- Pilotage en pas entier et demi-pas
- La capacité de contrôler plusieurs moteurs pas à pas indépendamment
- Inconvénient : Ne prend pas en charge le pilotage par micro-pas.
Code ESP8266
Étapes rapides
Pour commencer avec l'ESP8266 sur l'Arduino IDE, suivez ces étapes :
- Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
- Câblez les composants comme indiqué sur le schéma.
- Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
- Ouvrez Arduino IDE sur votre ordinateur.
- Choisissez la bonne carte ESP8266, comme par exemple NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
- Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
- Recherchez “AccelStepper” et trouvez la bibliothèque AccelStepper créée par Mike McCauley.
- Ensuite, appuyez sur le bouton Install pour installer la bibliothèque AccelStepper.
- Copiez le code et ouvrez-le avec l'IDE Arduino.
- Cliquez sur le bouton Upload pour charger le code sur l'ESP8266.
- Observez la rotation du moteur.
- Il devrait effectuer une révolution dans le sens horaire, suivie de deux révolutions dans le sens antihoraire, puis de deux révolutions dans le sens horaire.
La procédure est effectuée en continu.
- Surveillez le résultat dans le moniteur série.
Connaissances supplémentaires
Le moteur pas à pas vibre lors du mouvement
Ne vous inquiétez pas si le moteur pas à pas tremble pendant son fonctionnement. C'est une caractéristique typique du moteur pas à pas. Nous pouvons réduire les vibrations en utilisant la technique de contrôle par micro-pas.
De plus, en raison de cette caractéristique, si elle est gérée correctement, le moteur pas à pas peut générer des tons musicaux comme s'il s'agissait d'un instrument de musique. Un exemple de cela peut être trouvé ici sur Hackster.io.
2. Méthode de contrôle des moteurs pas à pas
- Pas complet : L'unité de mouvement est un pas, qui est égal à la valeur du degré spécifié dans la fiche technique ou le manuel du moteur pas à pas.
- Demi-pas : Chaque pas complet est divisé en deux petits pas. L'unité de mouvement est la moitié du pas complet. Cette méthode permet au moteur de se déplacer avec une résolution double.
- Micro-pas : Chaque pas complet est divisé en de nombreux petits pas. L'unité de mouvement est une fraction du pas complet. La fraction peut être 1/4, 1/8, 1/16, 1/32 ou même plus. Cette méthode permet au moteur de se déplacer avec une résolution plus élevée. Elle permet également au moteur de se déplacer plus doucement à faible vitesse. Plus le dividende est grand, plus la résolution est élevée et plus le mouvement sera doux.
Si la fiche technique du moteur spécifie 1,8 degré/étape :
- Pas complet : Le moteur peut avancer par incréments de 1,8 degrés par pas, ce qui donne 200 pas par révolution.
- Demi-pas : Le moteur peut avancer par incréments de 0,9 degrés par pas, ce qui donne 400 pas par révolution.
- Micro-pas : Le moteur peut avancer par incréments de 0,45, 0,225, 1,125, 0,05625 degrés par pas, ce qui donne 800, 1600, 3200, 6400... pas par révolution.
Le code ci-dessus utilisait la technique de contrôle par pas complet.
3. Problème de résonance
Ceci est destiné aux utilisateurs avancés. Les débutants n'ont pas besoin de le noter. Cela se produit à une gamme de vitesses, où la fréquence de pas est égale à la fréquence naturelle du moteur. Il pourrait y avoir un changement notable dans le bruit produit par le moteur, ainsi qu'une augmentation des vibrations. Dans les applications réelles, les développeurs doivent être conscients de cela.