- Moteur pas à pas:
- Pilote de moteur pas à pas ULN2003:
- Composants requis
- Schéma de circuit et explication
- Explication du code
Le moteur pas à pas est un moteur spécialement conçu qui tourne par étapes. La vitesse du moteur pas à pas dépend de la vitesse du signal électrique qui lui est appliqué. Différents modèles peuvent contrôler la direction et le type de rotation du moteur pas à pas. Principalement deux types de moteurs pas à pas sont disponibles, unipolaire et bipolaire. Unipolar est plus facile à utiliser, à contrôler et aussi plus facile à obtenir. Ici, dans ce didacticiel, nous interfaçons le moteur pas à pas avec le microcontrôleur PIC PIC16F877A.
Nous utilisons un moteur pas à pas 28BYJ-48 pour ce projet qui est bon marché et facilement disponible. C'est un moteur pas à pas unipolaire 5V DC. Nous utilisons également un module disponible avec ce moteur qui consiste en un circuit intégré de pilote de moteur pas à pas ULN2003. L'ULN2003 est une matrice de paires Darlington, ce qui est utile pour piloter ce moteur, car le microcontrôleur PIC ne pouvait pas fournir suffisamment de courant pour piloter. ULN2003A est capable de conduire 500mA de charge à 600 mA de courant de crête.
Moteur pas à pas:
Voyons les spécifications du moteur pas à pas 28BYJ-48 à partir de la fiche technique.
Comment faire tourner le moteur pas à pas:
Si nous voyons la fiche technique, nous verrons le brochage.
À l'intérieur du moteur, deux bobines à prise centrale sont disponibles. Le fil rouge est le commun pour les deux qui sera connecté à VCC ou 5V.
D'autres 4 fils rose, rouge, jaune et bleu contrôleront la rotation en fonction du signal électrique. De plus, en fonction du mouvement, ce moteur peut être contrôlé en 3 étapes. Mode d'entraînement complet, mode Half Drive et mode d'entraînement Wave.
Trois modes de conduite du moteur pas à pas:
Entraînement complet: Si deux électroaimants de stator sont sous tension à la fois, le moteur fonctionnera au couple maximal appelé mode de séquence d'entraînement complet.
Étape |
Bleu |
Rose |
Jaune |
Orange |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Demi-entraînement: Lorsqu'une et deux phases sont alternativement sous tension, le moteur fonctionnera en mode demi-entraînement. Il est utilisé pour augmenter la résolution angulaire. L'inconvénient est moins de couple produit dans ce mouvement.
Étape |
Bleu |
Rose |
Jaune |
Orange |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
sept |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Wave Drive: dans ce mode, un électroaimant stator est activé. Il suit 4 étapes identiques au mode Full-drive. Il consomme peu d'énergie avec un faible couple.
Étape |
Bleu |
Rose |
Jaune |
Orange |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Nous avons précédemment interfacé le moteur pas à pas avec d'autres microcontrôleurs:
Le moteur pas à pas peut également être contrôlé sans microcontrôleur, voir ce circuit de pilote de moteur pas à pas.
Pilote de moteur pas à pas ULN2003:
Comprenons la carte de dérivation qui consiste en ULN2003 IC. Il est important de comprendre la broche.
La partie jaune est utilisée pour connecter le moteur, la partie rouge montre un cavalier, il est important de placer le cavalier car il activera la protection de la diode de roue libre pour le moteur . L' entrée rose est pour la connexion du microcontrôleur.
Nous allons faire tourner le moteur en mode d'entraînement complet dans le sens des aiguilles d'une montre et le faire tourner à nouveau avec le mode d'entraînement d'onde dans le sens anti-horaire. Vérifiez la vidéo de démonstration à la fin.
Composants requis
- Pic16F877A
- Kit de programmation
- Planche à pain
- Cristal 20Mhz
- Condensateur à disque 33pF - 2 pièces
- Résistance 4,7k
- Fils et broches Berg
- Carte de dérivation ULN2003A avec le moteur pas à pas 28BYJ-48.
- Fils supplémentaires à connecter
- Bloc d'alimentation 5 V ou adaptateur mural avec une puissance de 500 mA
Schéma de circuit et explication
Dans le schéma de circuit, sur le côté gauche, le PIC16F877A est affiché et sur le côté droit, la connexion ULN2003A est affichée. L'ULN2003 et la partie moteur pas à pas se trouvent à l'intérieur de la carte de dérivation.
La connexion de la carte de dérivation à l'unité de microcontrôleur sera-
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
J'ai connecté tous les composants et votre matériel pour faire tourner le moteur pas à pas avec le microcontrôleur PIC est prêt.
Si vous êtes nouveau sur le microcontrôleur PIC, suivez nos didacticiels sur le microcontrôleur PIC indiquant la mise en route du microcontrôleur PIC.
Explication du code
Le code complet de ce pilote de moteur pas à pas basé sur PIC est donné à la fin de ce tutoriel avec une vidéo de démonstration. Comme toujours, nous devons d'abord définir les bits de configuration dans le microcontrôleur pic, puis commencer avec la fonction principale void .
Ce sont les macros pour les bits de configuration de l'unité de microcontrôleur et les fichiers d'en-tête de bibliothèque.
#define _XTAL_FREQ 200000000 // Fréquence du cristal, utilisée dans le délai #define speed 1 // Plage de vitesse 10 à 1 10 = le plus bas, 1 = le plus élevé #define steps 250 // combien de pas il faudra #define dans le sens des aiguilles d'une montre 0 // dans le sens des aiguilles d'une montre macro #define anti_clockwise 1 // macro dans le sens anti-horaire
Dans la première ligne, nous avons défini la fréquence du cristal qui est nécessaire pour la routine de retard. D'autres macros sont utilisées pour définir les options liées à l'utilisateur.
Si vous voyez le code, trois fonctions sont définies pour entraîner le moteur dans trois modes avec sens horaire et anti-horaire. Voici les trois fonctions:
1. void full_drive (direction des caractères)
2. void half_drive (direction char)
3. void wave_drive (direction des caractères)
Vérifiez les définitions de ces fonctions dans le code complet ci-dessous:
Maintenant dans la fonction principale vide , nous entraînons le moteur dans le sens des aiguilles d'une montre en utilisant le mode d'entraînement complet en fonction des étapes et après quelques secondes de retard, nous faisons à nouveau tourner le moteur dans le sens inverse des aiguilles d'une montre en utilisant le mode d'entraînement par ondes.
void main (void) { system_init (); while (1) { / * Conduisez le moteur en mode d'entraînement complet dans le sens des aiguilles d'une montre * / for (int i = 0; i
C'est ainsi que nous pouvons faire tourner le moteur pas à pas avec le microcontrôleur PIC. Les moteurs pas à pas sont très utiles dans les machines CNC, la robotique et d'autres applications embarquées.