1 / 21

Une application avec un moteur pas- à -pas , un PIC et le langage C

Une application avec un moteur pas- à -pas , un PIC et le langage C. Par: André Théberge Le 2 Mai 2006. 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

elke
Télécharger la présentation

Une application avec un moteur pas- à -pas , un PIC et le langage C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 1000100010001000100010001 Enroulement 1b 0010001000100010001000100 Enroulement 2a 0100010001000100010001000 Enroulement 2b 0001000100010001000100010

  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: • http://www.cs.uiowa.edu/~jones/step/types.html • http://www.doc.ic.ac.uk/~ih/doc/stepper/

  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, Vce=2V @ 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

  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 = 210.5263 -> 211 pas • 2ième coupe • 8000/38*2 = 421.0526 -> 421 pas – 211 = 210 pas • 3ième coupe • 8000/38*3 = 631.5789 -> 632 pas – 210 - 211 = 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

More Related