Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAmbre Keller Modifié depuis plus de 10 années
1
Une application avec un moteur pas-à-pas, un PIC et le langage C
Par: André Théberge Le 2 Mai 2006
2
Agenda Théorie du moteur pas-à-pas (stepper motor)
Le circuit de drive, et l’interface au PIC La sous-routine en langage C Une application concrète: la tête à diviser électronique Questions
3
Introduction au moteur
Le moteur pas-à-pas se distingue du moteur conventionnel par: 4 ou 6 fils au lieu de 2. Une multitude d’enroulements et de pôles La capacité de motion angulaire avec précision. En appliquant la bonne séquence d’impulsion sur les enroulements, on peut faire tourner le moteur dans le sens-horaire ou anti-horaire et aussi contrôler sa vitesse de rotation.
4
Un exemple de moteur
5
La rotation du moteur Enroulement 1a Enroulement 1b Enroulement 2a Enroulement 2b
6
Unipolaire vs. Bipolaire
Unipolaire utilise 5 ou 6 fils, un ou 2 commun Bipolaire utilise 4 fils
7
Autres types de moteurs
Moteurs à réluctance variable Moteurs bi-filaires Moteur multiphase Pour plus d’informations:
8
Caractéristiques de notre moteur exemple:
Unipolaire, 6 fils 200 pas, chacun de 1.8 degrés Chaque enroulement: 10 ohms, 8V DC Couple (Torque ) suffisant pour entraîner la charge (Tête à diviser)
9
Circuit de drive et interface au PIC
1er design: utiliser 4 x TIP-31 Ic=3A, Vce=1.2V et hfe=20
10
Circuit de drive et interface au PIC
1er design: utiliser 4 x TIP-31 Ic=3A, Vce=1.2V et hfe=20 2ième design: utiliser 4 x TIP-121 Ic=5A, Ib=12mA, hfe=1000 Ib=375mA !!!
11
La routine ‘drive_stepper’ en C
BYTE const POSITIONS[4] = {0b1000, 0b0010, 0b0100, 0b0001}; drive_stepper(BYTE speed, char dir, int32 steps) { static BYTE stepper_state = 0; int32 i; for(i=0; i<steps; ++i) { delay_ms(speed); set_tris_c(0xf0); port_c = POSITIONS[ stepper_state ]; if(dir!='R') stepper_state=(stepper_state+1)&(sizeof(POSITIONS)-1); else stepper_state=(stepper_state-1)&(sizeof(POSITIONS)-1); }
12
Application: la tête à diviser
PIC utilisé: PIC16F876, 28 broches Moteur branché (via driver) sur PC0-PC3 LCD 16x1 sur port B, multiplexé avec clavier 6 touches 2 alimentations séparées, une pour le moteur (10-12VDC), une pour la carte avec PIC (9V)
13
Le PCB du contrôleur à PIC
14
Clavier de contrôle Avance manuelle et mise à zéro
Facteur de division du cercle (# dents pour un engrenage) Avance par secteur: 360 deg. / facteur Anti-horaire / ‘-’ Horaire / ‘+’ ‘Enter’
15
La tête à diviser Utilisé sur une fraiseuse pour tailler des engrenages: 8 set de couteaux/pitch pour des profils de dents différents Le matériel à tailler est réduit au préalable au bon diamètre avec un tour à métal et tenu dans un ‘chuck’ à trois mords. Le chuck tourne à 1/40 de tour, pour chaque tour de poignée En remplaçant la poignée par un moteur, on obtient 200*40 pas pour chaque tour complet. Pour un engrenage de 80 dents ou moins, l’erreur angulaire est de 1% ou moins (erreur maximale: 1/25 de degré), si on ne tiens pas compte du back-lash
16
Une tête à diviser sur une fraiseuse
17
La fraiseuse en opération
18
Exemple d’utilisation
Touche ‘Avance manuelle’ ‘-’ ou ‘+’ pour faire tourner le moteur et l’enligner ‘enter’ pour remettre le compteur de pas à zéro Touche ‘Facteur de division’ ‘-’ ou ‘+’ pour choisir entre 1-255, ensuite ‘enter’ Touche ‘Avance par secteur’ ‘-’ ou ‘+’ pour avancer ou reculer d’une dent
19
Exemple: Tailler un engrenage de 38 dents
1ère coupe 8000/38 = > 211 pas 2ième coupe 8000/38*2 = > 421 pas – 211 = 210 pas 3ième coupe 8000/38*3 = > 632 pas – = 211 pas 4ième coupe … Le processus se continue jusqu’à 38 coupes La somme de tous les pas = 8000
20
Revision du code en C Stepper.c
21
Conclusion Présentation des moteurs pas-à-pas
Consulter les URLs suggérés Exemple de driver (hardware) avec des darlingtons. Exemple de sous-routine (software) en C Application pratique, qui permet de semi-automatiser la fabrication d’engrenages
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.