Arduino Nano - Moteur pas à pas 28BYJ-48 avec driver ULN2003
Ce tutoriel vous explique comment utiliser un Arduino Nano pour contrôler un moteur pas à pas 28BYJ-48 à l'aide d'un pilote ULN2003. En détail, nous apprendrons :
- Comment connecter un Arduino Nano à un moteur pas à pas 28BYJ-48 via un pilote ULN2003
- Comment programmer un Arduino Nano pour contrôler un seul moteur pas à pas 28BYJ-48 via un pilote ULN2003
- Comment programmer un Arduino Nano pour contrôler plusieurs moteurs pas à pas 28BYJ-48 via des pilotes 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 excellents pour le contrôle de position. Ils divisent une révolution complète en un nombre égal de "pas". Ces moteurs sont utilisés dans de nombreux appareils, tels que 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 est d'utiliser des moteurs pas à pas 28BYJ-48. Ils sont généralement accompagnés d'une carte de commande basée sur ULN2003, ce qui les rend incroyablement faciles à utiliser.
Comme indiqué dans la fiche technique, le moteur 28BYJ-48 fonctionne en mode pas complet, chaque pas correspondant à une rotation de 11,25°. Par conséquent, il y a 32 pas par révolution (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 possède 5 broches. Il n'est pas nécessaire de s'inquiéter des spécificités de ces broches ; elles doivent simplement être connectées au connecteur du pilote de moteur ULN2003.
À propos du pilote de moteur pas à pas ULN2003
Le ULN2003 est un module de commande de moteur largement utilisé pour les moteurs pas à pas.
- Il dispose de quatre LED qui indiquent l'activité des quatre lignes d'entrée de commande, ce qui offre un bel effet visuel lorsque le moteur pas à pas est en mouvement.
- De plus, il comprend un cavalier marche/arrêt pour séparer l'alimentation du moteur pas à pas.
Brochage de l'ULN2003
Le module ULN2003 dispose de 6 broches et d'un connecteur femelle :
- Broche IN1 : elle est utilisée pour commander le moteur. Elle doit être connectée à une broche de sortie sur la carte Arduino Nano.
- Broche IN2 : elle est utilisée pour commander le moteur. Elle doit être connectée à une broche de sortie sur la carte Arduino Nano.
- Broche IN3 : elle est utilisée pour commander le moteur. Elle doit être connectée à une broche de sortie sur la carte Arduino Nano.
- Broche IN4 : elle est utilisée pour commander le moteur. Elle doit être connectée à une broche de sortie sur la carte Arduino Nano.
- Broche GND : c'est la broche de masse commune. Elle doit être connectée aux broches GND de la carte Arduino Nano et à l'alimentation externe.
- Broche VDD : elle alimente le moteur. Elle doit être connectée à l'alimentation externe.
- Connecteur du moteur : c'est ici que le moteur se branche.
※ NOTE THAT:
- La tension de l'alimentation externe doit être égale à la tension du moteur pas à pas. Par exemple, si un moteur pas à pas fonctionne avec du 12V DC, nous devons utiliser une alimentation de 12V. Dans le cas du moteur pas à pas 28BYJ-48, il fonctionne avec 5V DC, donc nous utiliserons une alimentation de 5V.
- Cependant, même si le moteur pas à pas nécessite une alimentation de 5V, veuillez NE PAS connecter la broche VDD à la broche 5V sur l'Arduino Nano. Connectez-la plutôt à 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
Il n'est pas nécessaire de prêter attention à la couleur des fils du moteur pas à pas. Il suffit de connecter le connecteur mâle du moteur pas à pas 28BYJ-48 au connecteur femelle du pilote ULN2003.
Comment programmer pour contrôler un moteur pas à pas
Il existe trois manières de réguler un moteur pas à pas :
- Pas complet
- Demi-pas
- Micro-pas
Pour les applications de base, nous pouvons utiliser l'approche par pas complet. Les spécificités des trois méthodes seront détaillées dans la dernière section de ce tutoriel. Programmer ces techniques peut être complexe. Heureusement, il existe de nombreuses bibliothèques qui ont fait le travail pour nous, il suffit donc de les utiliser.
L'IDE Arduino inclut une bibliothèque Stepper intégrée. Cependant, nous ne vous recommandons pas d'utiliser cette bibliothèque car :
- C'est une bibliothèque bloquante, ce qui signifie qu'elle empêche l'Arduino Nano de réaliser d'autres tâches tout en contrôlant le moteur pas à pas.
- Elle ne fournit pas suffisamment de fonctions.
Au lieu de cela, nous vous suggérons d'utiliser la bibliothèque AccelStepper. Cette bibliothèque offre :
- Accélération
- Décélération
- Pilotage en pas complet et demi-pas
- Plusieurs moteurs pas à pas simultanés, avec progression indépendante et simultanée sur chaque moteur
- Inconvénient : Pas de support pour la conduite en micro-pas
Code Arduino Nano
Étapes rapides
- Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
- Recherchez "AccelStepper", puis trouvez la bibliothèque AccelStepper créée par Mike McCauley.
- Cliquez sur le bouton Install pour ajouter 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 vers l'Arduino Nano.
- Vous devriez alors voir le moteur tourner. Il devrait faire une révolution dans le sens des aiguilles d'une montre, suivie de deux révolutions dans le sens inverse des aiguilles d'une montre, puis de deux révolutions dans le sens des aiguilles d'une montre.
La procédure est menée de manière continue.
- Consultez la sortie dans le moniteur série.
Comment contrôler plusieurs moteurs pas à pas 28BYJ-48
Découvrons comment gérer deux moteurs pas à pas séparément mais simultanément.
Schéma de câblage pour deux moteurs pas à pas 28BYJ-48
This image is created using Fritzing. Click to enlarge image
Code Arduino Nano pour deux moteurs pas à pas 28BYJ-48
Connaissances supplémentaires
1. Le moteur pas à pas vibre lors du déplacement
Ne soyez PAS inquiet si le moteur pas à pas tremble pendant son mouvement. C'est une caractéristique du moteur pas à pas. Nous pouvons réduire les vibrations en utilisant la technique de contrôle par micro-pas.
De plus, grâce à cette fonctionnalité, si elle est bien gérée, le moteur pas à pas peut créer de la musique 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 de degré spécifiée dans la fiche technique ou le manuel du moteur pas à pas.
- Demi-pas: Divise chaque pas complet en deux pas plus petits. L'unité de mouvement est la moitié du pas complet. Cette méthode permet au moteur de se déplacer avec une résolution doublée.
- Micro-pas: Divise chaque pas complet en de nombreux pas plus petits. L'unité de mouvement est une fraction du pas complet. La fraction peut être de 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 à basse vitesse. Plus le diviseur est grand, plus la résolution est élevée et le mouvement est fluide.
Si la fiche technique du moteur indique 1,8 degré par pas :
- Pas complet : Le moteur avancera par incréments de 1,8 degrés par pas, ce qui résulte en 200 pas par révolution.
- Demi-pas : Le moteur avancera par incréments de 0,9 degrés par pas, ce qui résulte en 400 pas par révolution.
- Micro-pas : Le moteur avancera par incréments de 0,45, 0,225, 1,125, 0,05625 degrés par pas, ce qui résulte en 800, 1600, 3200, 6400... pas par révolution.
La méthode de contrôle utilisée dans le code ci-dessus était l'approche par pas complet.
3. Problème de résonance
Ceci est destiné aux utilisateurs avancés. Les débutants n'ont pas à s'en préoccuper. Cela se produit dans une gamme de vitesses, où la vitesse de pas est égale à la fréquence naturelle du moteur. Il pourrait y avoir un changement notable dans le son produit par le moteur, ainsi qu'une augmentation des vibrations. Dans les applications pratiques, les développeurs devraient prendre cela en compte.