Raspberry Pi - Moteur Pas à Pas 28BYJ-48 Pilote ULN2003
Ce tutoriel vous apprend à utiliser un Raspberry Pi pour contrôler le moteur pas à pas 28BYJ-48 à l'aide du pilote ULN2003. En détail, nous allons apprendre :
- Comment connecter un Raspberry Pi à un moteur pas à pas 28BYJ-48 via un pilote ULN2003
- Comment programmer un Raspberry Pi pour contrôler un seul moteur pas à pas 28BYJ-48 via un pilote ULN2003
- Comment programmer un Raspberry Pi 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 idéaux pour le contrôle de position. Ils divisent une révolution complète en une série de « pas » égaux. Ces moteurs se trouvent fréquemment dans les imprimantes, les imprimantes 3D, les machines CNC et les applications d'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. Ceux-ci sont généralement accompagnés d'une carte pilote basée sur un ULN2003, ce qui les rend incroyablement faciles à utiliser.
Selon la fiche technique, lorsque le moteur 28BYJ-48 est en mode pas complet, chaque pas équivaut à une rotation de 11,25°. Par conséquent, il y a 32 pas pour une seule révolution (360°/11,25° = 32).
De plus, le moteur est équipé d'un réducteur 1/64. Cela se traduit par 32 x 64 = 2048 pas. Chaque pas est égal à 360°/2048 = 0,1758°.
Conclusion : Si le moteur est réglé sur 2048 pas en mode pas-à-pas complet, il effectuera une révolution.
Le moteur pas à pas 28BYJ-48 utilisant le brochage du driver ULN2003
Le moteur pas à pas 28BYJ-48 a 5 broches. Nous n'avons pas besoin de nous soucier des spécificités de ces broches. Il suffit de le brancher sur le connecteur du driver de moteur ULN2003.
À propos du module de pilote de moteur pas à pas ULN2003
L'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, offrant un excellent effet visuel lors du passage.
- De plus, il est livré avec un cavalier ON/OFF pour couper l'alimentation du moteur pas à pas.
Brochage ULN2003
Le module ULN2003 a 6 broches et un connecteur femelle :
- Broche IN1 : elle est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur Raspberry Pi.
- Broche IN2 : elle est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur Raspberry Pi.
- Broche IN3 : elle est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur Raspberry Pi.
- Broche IN4 : elle est utilisée pour entraîner le moteur et doit être connectée à une broche de sortie sur Raspberry Pi.
- Broche GND : c'est une broche de masse commune et elle doit être connectée à la fois aux masses du Raspberry Pi et de l'alimentation externe.
- Broche VDD : elle fournit l'alimentation pour le moteur et doit être connectée à l'alimentation externe.
- Connecteur du moteur : c'est là que se branche le moteur.
※ Note:
- La tension de l'alimentation externe doit correspondre à la tension du moteur pas à pas. Par exemple, si un moteur pas à pas nécessite 12V DC, nous devons utiliser une alimentation de 12V. Si le moteur pas à pas est un 28BYJ-48, il nécessite 5V DC, donc nous utiliserons une alimentation de 5V.
- Cependant, même si le moteur pas à pas nécessite une alimentation de 5V, NE connectez PAS la broche VDD à la broche 5V du Raspberry Pi. Au lieu de cela, connectez-le à une alimentation externe de 5V, car le moteur pas à pas consomme trop d'énergie.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :
Il n'est pas nécessaire de faire attention à la couleur des fils sur le 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 façons de réguler un moteur pas à pas :
- Pas complet
- Demi-pas
- Micro-pas
Pour les applications de base, la méthode à pas entier peut être utilisée. Les détails des trois méthodes seront discutés dans la section finale de ce didacticiel.
Code Raspberry Pi
Étapes rapides
- Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec le Raspberry Pi installé sur votre Pi.
- Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
- Assurez-vous que votre Raspberry Pi est connecté à Internet si vous avez besoin d'installer des bibliothèques.
- Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
- Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
- Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
- Créez un fichier de script Python stepper_uln2003.py et ajoutez le code suivant :
- Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le Terminal :
- Vérifiez la rotation du moteur.
- Il doit effectuer 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 deux révolutions dans le sens des aiguilles d'une montre.
En modifiant la valeur de la variable delay dans le code, vous pouvez changer la vitesse du moteur pas à pas.
Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le Terminal.
Connaissances supplémentaires
Le moteur pas à pas vibre pendant le mouvement
Ne vous inquiétez pas si le moteur pas à pas vibre en mouvement. C'est une caractéristique du moteur pas à pas. Nous pouvons diminuer les vibrations en utilisant la technique de contrôle par micro-pas.
De plus, grâce à sa caractéristique, si elle est bien gérée, le moteur pas à pas peut créer des notes de musique comme un instrument de musique. Un exemple de cela peut être trouvé ici sur Hackster.io.
Méthode de contrôle des moteurs pas à pas
- Pas-complet : L'unité de mouvement est un pas, ce qui équivaut à la valeur en degrés indiquée dans la fiche technique ou le manuel du moteur pas à pas.
- Demi-pas : Chaque pas complet est divisé en deux pas plus petits. L'unité de mouvement est la moitié d'un pas complet. Cette méthode permet au moteur de se déplacer avec une double résolution.
- 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 et un mouvement plus fluide à basse vitesse. Plus le dividende est grand, plus la résolution est élevée et le mouvement est fluide.
Si la fiche technique du moteur spécifie 1,8 degré/pas :
- Pas complet : Le moteur peut se déplacer par incréments de 1,8 degré par pas, soit 200 pas par révolution.
- Demi-pas : Le moteur peut se déplacer par incréments de 0,9 degré par pas, soit 400 pas par révolution.
- Micro-pas : Le moteur peut se déplacer par incréments de 0,45, 0,225, 1125, 0,05625 degré par pas, soit 800, 1600, 3200, 6400... pas par révolution.
Le code ci-dessus utilise la technique de contrôle par pas complet.
Problème de Résonance
Ceci est destiné aux utilisateurs plus expérimentés. Les débutants n'ont pas à s'en préoccuper. Cela se produit dans une gamme de vitesses, où le taux de pas est égal à la fréquence naturelle du moteur. Il pourrait y avoir un changement notable dans le son que le moteur produit, ainsi qu'une augmentation des vibrations. Dans les applications réelles, les développeurs devraient en tenir compte.