Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai...
-
Upload
ambre-keller -
Category
Documents
-
view
104 -
download
0
Transcript of Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai...
![Page 1: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/1.jpg)
Une application avec un moteur pas-à-pas, un PIC
et le langage C
Par: André ThébergeLe 2 Mai 2006
![Page 2: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/2.jpg)
AgendaAgenda
Théorie du moteur pas-à-pas (stepper motor)Le circuit de drive, et l’interface au PICLa sous-routine en langage CUne application concrète: la tête à diviser
électroniqueQuestions
![Page 3: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/3.jpg)
Introduction au moteur 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ôlesLa 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.
![Page 4: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/4.jpg)
Un exemple de moteurUn exemple de moteur
![Page 5: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/5.jpg)
La rotation du moteurLa rotation du moteur
Enroulement 1a 1000100010001000100010001 Enroulement 1b 0010001000100010001000100 Enroulement 2a 0100010001000100010001000 Enroulement 2b 0001000100010001000100010
![Page 6: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/6.jpg)
Unipolaire vs. BipolaireUnipolaire vs. Bipolaire
Unipolaire utilise 5 ou 6 fils, un ou 2 communBipolaire utilise 4 fils
![Page 7: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/7.jpg)
Autres types de moteursAutres types de moteurs
Moteurs à réluctance variableMoteurs bi-filairesMoteur multiphasePour plus d’informations:
http://www.cs.uiowa.edu/~jones/step/types.htmlhttp://www.doc.ic.ac.uk/~ih/doc/stepper/
![Page 8: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/8.jpg)
Caractéristiques de notre moteur exemple:
Caractéristiques de notre moteur exemple:
Unipolaire, 6 fils200 pas, chacun de 1.8 degrésChaque enroulement: 10 ohms, 8V DCCouple (Torque ) suffisant pour entraîner la
charge (Tête à diviser)
![Page 9: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/9.jpg)
Circuit de drive et interface au PIC
Circuit de drive et interface au PIC
1er design: utiliser 4 x TIP-31 Ic=3A, Vce=1.2V et hfe=20
![Page 10: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/10.jpg)
Circuit de drive et interface au PIC
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-121Ic=5A, Vce=2V @ Ib=12mA, hfe=1000
Ib=375mA !!!
![Page 11: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/11.jpg)
La routine ‘drive_stepper’ en C
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);
}
}
![Page 12: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/12.jpg)
Application: la tête à diviser
Application: la tête à diviser
PIC utilisé: PIC16F876, 28 brochesMoteur branché (via driver) sur PC0-PC3LCD 16x1 sur port B, multiplexé avec clavier 6
touches2 alimentations séparées, une pour le moteur
(10-12VDC), une pour la carte avec PIC (9V)
![Page 13: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/13.jpg)
Le PCB du contrôleur à PICLe PCB du contrôleur à PIC
![Page 14: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/14.jpg)
Clavier de contrôleClavier 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’
![Page 15: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/15.jpg)
La tête à diviserLa tête à diviser
Utilisé sur une fraiseuse pour tailler des engrenages: 8 set de couteaux/pitch pour des profils de dents différentsLe 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éeEn 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
![Page 16: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/16.jpg)
Une tête à diviser sur une fraiseuse
Une tête à diviser sur une fraiseuse
![Page 17: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/17.jpg)
La fraiseuse en opérationLa fraiseuse en opération
![Page 18: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/18.jpg)
Exemple d’utilisationExemple 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
![Page 19: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/19.jpg)
Exemple: Tailler un engrenage de 38 dents
Exemple: Tailler un engrenage de 38 dents
1ère coupe8000/38 = 210.5263 -> 211 pas
2ième coupe8000/38*2 = 421.0526 -> 421 pas – 211 = 210 pas
3ième coupe8000/38*3 = 631.5789 -> 632 pas – 210 - 211 = 211 pas
4ième coupe… Le processus se continue jusqu’à 38 coupesLa somme de tous les pas = 8000
![Page 20: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/20.jpg)
Revision du code en CRevision du code en C
Stepper.c
![Page 21: Une application avec un moteur pas-à-pas, un PIC et le langage C Par: André Théberge Le 2 Mai 2006.](https://reader031.fdocument.pub/reader031/viewer/2022013003/551d9d90497959293b8c69d8/html5/thumbnails/21.jpg)
ConclusionConclusion
Présentation des moteurs pas-à-pasConsulter les URLs suggérés
Exemple de driver (hardware) avec des darlingtons.Exemple de sous-routine (software) en CApplication pratique, qui permet de semi-automatiser la fabrication
d’engrenages