Vous êtes sur la page 1sur 16

Ecole Nationale dIngnieurs de Sousse

PROJET SEMESTRIEL N 4 Commande de moteurs pas--pas

Ralis par : Feriel Sghaier Assar Maghraoui Nizar Messaoud EI 2.2

SOMMAIRE
1-Introduction . 3 2-Prsentation du projet . 3 3 -Spcifications fonctionnelles .... 4 a- Le circuit de commande .... 4 b- Le circuit de puissance .... 6 -Le rgulateur 7805 .. 6 -Le ULN2003A ... 7 -Les moteurs pas--pas .. 7 4-Tests et validation ... 9
a- Ralisation du circuit. 9 b- Essai du circuit ... 10 c- Ralisation des typons . 11 d- Dveloppement de la carte ................................................................................ 11 e- Programmation du microcontrleur .... 12

5- Conclusion . 13 6-Annexe . 14

1-Introduction :

Dans le cadre de notre apprentissage de la programmation des microcontrleurs, nous avons opt pour une petite application qui serait base de ces circuits intelligents. Lide tant dintgrer le circuit en question dans un dispositif permettant de rpondre un besoin spcifique En effet, notre projet consiste commander deux moteurs pas--pas de faon simuler le mouvement dun robot 3 roues dont 2 font lobjet de notre ralisation. La commande est entirement assure par la programmation dun microcontrleur de faon rpondre exactement nos besoins.

2-Prsentation du projet : On sest propos de raliser un petit robot trois roues qui pourrait se dplacer dans tous les sens en jouant sur la vitesse de rotation des deux roues arrires. Le principe est simple : on dispose de deux roues commandes et dune troisime libre. Supposons quon veut raliser un mouvement de translation rectiligne du robot, il suffit donc de transmettre la mme vitesse aux deux roues. De mme si on dsire faire tourner le robot, une lgre augmentation de la vitesse dune roue par rapport lautre ferait laffaire. La figure 1 illustre ce principe et prsente la disposition des roues.

Roue libre

2 roues commandables Figure 1 : disposition des roues du robot Pour des raisons de commodit nous avons choisi dalimenter notre dispositif par une batterie 9 V lgre, peu encombrante en surface et abondante dans le march. Les deux moteurs sont dsormais de petite taille mais il y a tout de mme un risque que le courant quils absorbent soit en dessus des capacits de la pile et cest justement pour cette raison quon a adopt une commande par crneaux de tensions, une mthode qui sera explique plus tard.

3 -Spcifications fonctionnelles a-Le circuit de commande : La fonction de commande est assure par le PIC 16F84A, un microcontrleur fabriqu par MICROCHIP.

Figure 2 : Le microcontrleur PIC16F84A

Ce circuit dispose de : *VDD : la broche de polarisation. *VSS : la masse. * OSC1 et OSC2 : signaux d'horloges, ces broches sont connectes un quartz. * MCLR : Reset (Master Clear) ou tension de programmation. *Le PORT A (17-18-1-2) : comprend 5 lignes Entres/Sorties. Sa configuration et sa programmation passent par lutilisation de deux registres qui sont PORT A et TRIS A. *Le PORT B (6->13): possde 8 lignes Entres/Sorties configurables et programmables par PORT B et TRIS B. Les 4 premires broches du PORT A (RA0->RA3) sont configures en sorties pour le pilotage dun des moteurs alors que la 5me (RA4) fonctionne en entre afin de tester si le bouton de Marche/Arrt est appuy ou pas. Le 2me moteur est command via les 4 premires lignes du PORT B (RB0->RB3) qui sont mises en sorties.

Faire tourner un moteur consiste envoyer des impulsions sur ses 4 bornes selon la squence ci-dessous :

Sortie 1 Sortie 2 Sortie 3 Sortie 4

1 1 0 0

0 1 1 0

0 0 1 1

1 0 0 1

Figure 3 : Squence de commande des moteurs Chaque moteur reoit cette squence indpendamment de lautre. Toutefois, pour que le robot puisse marcher en avant, les deux moteurs doivent tourner la mme vitesse. Pour ce faire, lenvoi des impulsions depuis les deux ports se fait obligatoirement avec la mme frquence. Dans le cas contraire, le robot tourne ou bien gauche ou bien droite.

b- Le circuit de puissance : Cette partie du dispositif vient en amont et aval du circuit de commande assurant ainsi la transmission de la puissance attnue du gnrateur vers le processeur et du processeur vers les moteurs. En effet, il a fallut intercaler plusieurs composants ddis ce genre de conversion de puissance savoir le rgulateur 7805 et le ULN2003A.

-Le rgulateur 7805 : Un rgulateur sert rguler ou stabiliser un potentiel sur sa broche de sortie, il peut tre fixe ou rglable, positif ou ngatif par rapport la masse. Pour notre cas le 7805 dlivre un potentiel positif par rapport la masse et de valeur 5 V mais il faut noter que ceci nest ralisable que si la tension en entre du rgulateur est suprieure 5 V.

Figure 4 : Le rgulateur 7805

On a utilis le rgulateur pour pouvoir polariser le microcontrleur un potentiel de 5 V stable issu de la sortie OUT de celui-l. Le schma de rgulation se prsente comme suit :

9V

7805

5V

PIC 16F84A
9V

Figure 5 : Rgulation de la tension

-Le ULN2003A : Commercialis par ST Microelectronics, il permet damplifier la tension entre son entre et sa sortie, cette dernire pouvant atteindre jusqu 50 V. Dans notre cas nous aurons besoin davoir 9 V pour commander les deux moteurs. Lamplification se fait grce la disposition dune broche commune polarise sur la tension de sortie et connecte toutes les autres broches collecteur ouvert. La figure suivante illustre bien le principe.

Figure 6 : ULN2003A

-Les moteurs pas--pas : Les moteurs pas-- pas sont des moteurs lectriques gnralement commands en tension par la mthode dite commande par crneaux de tension. Ce type de moteurs est trs rpondu surtout pour les applications ncessitant une bonne prcision sur la position angulaire sans avoir recours lasservissement et la rgulation par des retours de boucles. Leur usage le plus connu est dans les imprimantes jet dancre et les lecteurs de CD des ordinateurs

Ces moteurs peuvent se prsenter sur le march sous plusieurs types, celui que nous avons choisi est de type unipolaire 4 phases comme indiqu sur la figure ci-contre.

Figure 7 : Disposition des bobines dun moteur pas--pas

La commande en crneaux de tension sagit denvoyer des impulsions de courte dure sur les broches du moteur de faon alterne comme le montre la figure ci-dessous :

Figure 8 : Visualisation de la squence de commande sur loscilloscope

4-Tests et Validation : a-Ralisation du circuit : Aprs avoir termin ltude thorique de ce projet, on est pass la schmatisation du montage du circuit au moyen dIsis. Le schma obtenu est le suivant :

Figure 10 : Schma global du circuit

b-Essai du circuit : Avant de procder la soudure des composants, il a fallu tester le circuit sur une plaque essais. Pour ce faire, on a remplac les deux moteurs par 8 diodes LED o chacune delles reprsente une borne du moteur comme le montre la figure suivante :

Figure 11 : Tests sur la plaque essais

Etant donn quon a utilis une commande en tension des moteurs, le courant dbit sera faible ce qui explique la lgret de luminosit des diodes LED. On relve une squence denclenchement des diodes deux deux en faisant une rotation qui correspond bien au fonctionnement dfini auparavant dans notre programme. A priori le programme ainsi le choix des composant sont adquats, il faut donc passer la ralisation de la carte.

10

c-Ralisation des typons : Ltape suivante consiste faire le routage avec Ares. Il en dcoule, lobtention de deux typons car la carte est double face, ce qui nous a permis de gagner en surface. Les typons seront ensuite imprim sur la carte et les parties en noires feront les pistes et les connections de notre circuit.

Face suprieure Figure 12 : Les typons d-Dveloppement Dveloppement de la carte :

Face infrieure

Une fois les typons sont prts il ne reste plus qu passer au laboratoire et effectuer les dernires tches qui sont : Linsolation : on dispose le typon sur la glace de linsoleuse, ensuite on prsente la face cuivre photosensible sur le typon aprs avoir enlev enlev le papier de protection et puis on referme linsoleuse. La rvlation : on plonge la plaque dans le produit rvlateur jusqu ce que le dessin apparaisse parfaitement et on la rince avec de leau. La gravure : dans cette tape, on a introduit la carte dans dans la machine de gravure qui dissout le cuivre dans les zones o il ny a pas de pistes. Une fois sortie, on rince la plaque avec de leau ensuite on te le produit de protection des pistes laide dun chiffon imbib dalcool jusqu ce que les pistes soient s brillantes. Le perage : on a utilis une mini perceuse sur un support colonnes. Le montage : on a effectu la soudure des composants laide dun fer souder.

11

e-Programmation du microcontrleur : Une fois tous les paramtres rgls il ne reste plus qu programmer notre microcontrleur avant de lintgrer la carte. Pour ce faire il existe des programmateurs sur lesquels il suffit de monter le PIC et charger le fichier du programme gnralement sous lextension .hex et cest tout. Notre programmateur nous est de marque ELNEC pouvant supporter plusieurs modles de microcontrleurs et muni dune petite application (PG4UW) assurant le transfert du fichier .hex vers la mmoire EEPROM du PIC.

Figure 13 : Le programmateur de PIC (PIK PROG)

Figure 14 : Lapplication PG4UW

12

5- Conclusion :

Ce projet nous a t bnfique dans la mesure o il nous a familiariss avec la manipulation des microcontrleurs et plus prcisment avec le PIC 16F84. En outre, ce projet a normment contribu consolider nos connaissances dans la conception et fabrication des cartes lectroniques. A travers ce projet on a su acqurir et lesprit du travail en groupe avec tout lchange dides qui vient avec, et la capacit de bien coordonner et rpartir les tches.

13

6-Annexe : Le code source du programme


LIST p=16F84 #include "P16F84.INC" time1 EQU 0X0C time2 EQU 0X0D time3 EQU 0X0E CBLOCK 0x10 pos dc1 dc2 dc3 dc4 ENDC LIST

p=16F84

#include "P16F84.INC" CBLOCK 0x10 ENDC ORG goto ORG goto clrw movlw movwf movlw movwf movwf clrw movwf bsf movlw movwf movlw movwf bcf loop call goto 0 start 4 intvector

entrypoint

intvector start

0x0F time1 0x05 time2 time3

PORTB STATUS,RP0 0x00 TRISB 0x10 TRISA STATUS,RP0 btfss PORTA,4 rot loop

rot

movlw movwf movwf call movlw movwf movwf call movlw movwf

b'00000011' PORTB PORTA delay b'00000110' PORTB PORTA delay b'00001100' PORTB

14

movwf PORTA call delay movlw b'00001001' movwf PORTB movwf PORTA call delay1 decfsz time1,F return call fonction1

fonction1 movlw b'00000011' movwf PORTB movwf PORTA call delay1 movlw b'00000110' movwf PORTB movwf PORTA call delay1 movlw b'00001100' movwf PORTB movwf PORTA call delay1 movlw b'00001001' movwf PORTB movwf PORTA call delay1 return

delay dl1 dl2

movlw movwf clrf nop nop decfsz goto decfsz goto return movlw movwf clrf nop nop decfsz goto decfsz goto decfsz return

10 dc1 dc2

dc2,F dl2 dc1,F dl1

delay1 dl11 dl21

50 dc1 dc2

dc2,F dl21 dc1,F dl11 time2,F

call fonction2

fonction2 movlw b'00000011'

15

movwf PORTA call delay1 movlw b'00000110' movwf PORTA call delay1 movlw b'00001100' movwf PORTA call delay1 movlw b'00001001' movwf PORTA call delay1 decfsz time3,F return call fonction1

END

16