Arduino - Contrôle du moteur pas à pas 28BYJ-48 à l'aide du pilote ULN2003
Dans ce tutoriel, nous allons apprendre :
- Comment contrôler un seul moteur pas à pas 28BYJ-48 à l'aide d'un Arduino et d'un pilote ULN2003
- Comment contrôler plusieurs moteurs pas à pas 28BYJ-48 à l'aide d'un Arduino et d'un pilote ULN2003
Les moteurs pas à pas sont d'excellents moteurs pour le contrôle de position. Ils divisent une révolution complète en un nombre égal de « pas ». Ils sont utilisés dans de nombreux dispositifs tels que les imprimantes, les imprimantes 3D, les machines CNC et l'automatisation industrielle.
Un moyen peu coûteux de se renseigner sur les moteurs pas à pas est d'utiliser des moteurs pas à pas 28BYJ-48. Ils sont généralement fournis avec une carte de commande basée sur un ULN2003, ce qui les rend très faciles à utiliser.
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
Selon la fiche technique, lorsque le moteur 28BYJ-48 fonctionne en mode pas complet, chaque pas correspond à une rotation de 11,25°. Cela signifie qu'il y a 32 pas par révolution (360°/11,25° = 32).
En outre, le moteur possède un réducteur de 1/64. Cela signifie qu'il a en réalité 32 x 64 = 2048 pas. Chaque pas est équivalent à 360°/2048 = 0,1758°.
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 préoccuper des détails de ces broches. Il suffit de le brancher au connecteur du pilote de moteur ULN2003.
À propos du module de pilotage de moteur pas à pas ULN2003
Le ULN2003 est l'un des modules de commande de moteur pas à pas les plus courants.
- Le module dispose de quatre LED qui montrent l'activité des quatre lignes d'entrée de commande (pour indiquer l'état de pas). Elles produisent un effet splendide lors du pas à pas.
- Le module comprend également un cavalier marche/arrêt pour isoler l'alimentation du moteur pas à pas.
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 Arduino.
- Broche IN2 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur Arduino.
- Broche IN3 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur Arduino.
- Broche IN4 : est utilisée pour piloter le moteur. Connectez-la à une broche de sortie sur Arduino.
- Broche GND : est une broche de masse commune. Elle DOIT être connectée aux deux GND de l'Arduino et à l'alimentation externe.
- Broche VDD : fournit l'énergie pour le moteur. Connectez-la à 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 à celle 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, nous utiliserons donc une alimentation de 5V.
- Même si un moteur pas à pas nécessite une alimentation de 5V, veuillez NE PAS connecter la broche VDD à la broche 5V sur Arduino. Connectez-la plutôt à une alimentation externe de 5V. Cela est dû au fait que le moteur pas à pas consomme trop de puissance.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
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
Il existe trois méthodes pour contrôler un moteur pas à pas :
- Pas complet
- Demi-pas
- Micro-pas
Pour une application simple, nous pouvons utiliser la méthode pas entier. Le détail de ces trois méthodes sera présenté dans la dernière partie de ce tutoriel. La programmation pour ces méthodes est compliquée. Heureusement, il existe de nombreuses bibliothèques qui l'ont fait pour nous. Nous avons juste besoin d'utiliser la bibliothèque.
L'IDE Arduino dispose d'une bibliothèque Stepper intégrée. Cependant, nous ne vous recommandons pas d'utiliser cette bibliothèque car :
- La bibliothèque est bloquante. Cela signifie qu'elle empêche Arduino d'effectuer d'autres tâches pendant qu'elle contrôle le moteur pas à pas.
- Elle ne possède pas suffisamment de fonctions.
Au lieu de cela, nous vous recommandons d'utiliser la bibliothèque AccelStepper. Cette bibliothèque prend en charge :
- Accélération
- Décélération.
- Conduite en pas complet et demi-pas.
- Plusieurs moteurs pas à pas simultanés, avec des pas indépendants et simultanés sur chaque moteur.
- Inconvénient : Ne prend pas en charge la conduite en micro-pas.
Code Arduino
Étapes rapides
- Accédez à l'icône Libraries sur la barre latérale 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 sur l'IDE Arduino pour téléverser le code vers Arduino
- Observez la rotation du moteur. Il doit :
- 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.
- Consultez 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
Code Arduino pour deux moteurs pas à pas 28BYJ-48
Connaissances supplémentaires
Le moteur pas à pas vibre lors du déplacement.
Ne vous inquiétez pas si le moteur pas à pas vibre pendant son mouvement. C'est une caractéristique du moteur pas à pas. Nous pouvons réduire les vibrations en utilisant la méthode de contrôle par micro-pas.
De plus, grâce à cette caractéristique, si nous contrôlons correctement, le moteur pas à pas peut produire des sons musicaux comme s'il s'agissait d'un instrument de musique. Vous pouvez voir ce projet sur Arduino Project Hub.
2. Méthode de contrôle des moteurs pas à pas
- Pas complet : L'unité de déplacement est un pas, ce qui équivaut à une 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 petits pas. L'unité de déplacement 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 petits pas. L'unité de déplacement 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 dividende est grand, plus la résolution est élevée et le mouvement est fluide.
Par exemple, si la fiche technique du moteur indique 1,8 degré/étape :
- Pas complet : Le moteur peut avancer de 1,8 degré/étape <⇒ 200 pas/révolution
- Demi-pas : Le moteur peut avancer de 0,9 degré/étape <⇒ 400 pas/révolution
- Micro-pas : Le moteur peut avancer de 0,45, 0,225, 0,1125, 0,05625 degré/étape <⇒ 800, 1600, 3200, 6400... pas/révolution
Le code ci-dessus utilisait la méthode de contrôle par pas complet.
3. Problème de résonance
Il s'agit des utilisations avancées. Les débutants n'ont PAS besoin d'y prêter attention. Cela se produit dans une gamme de vitesses, dans laquelle la cadence de pas équivaut à la fréquence naturelle du moteur. Il peut y avoir un changement audible dans le bruit produit par le moteur, ainsi qu'une augmentation des vibrations. Dans les applications réelles, le développeur DOIT prêter attention à ce problème.
Vidéo
WARNING
Veuillez noter que ce tutoriel est incomplet. Nous publierons sur notre Page Facebook lorsque le tutoriel sera complet. Aimez-la pour rester informé.