17408486-commande-dun-moteur-pasapas.pdf
TRANSCRIPT
1
Ecole Nationale d’Ingénieurs de Sousse
PROJET SEMESTRIEL N° 4
Commande de moteurs pas-à-pas
Réalisé par :
Feriel Sghaier
Aïssar Maghraoui
Nizar Messaoud
EI 2.2
2
S O M M A I R E
1-Introduction ……………………………………………………………………………………………………………….…… 3
2-Présentation du projet …………………………………………………………………………………………….……… 3
3 -Spécifications fonctionnelles ………………………………………………………………………………..……….. 4
a- Le circuit de commande ………………………………………………………………………………..….. 4
b- Le circuit de puissance ………………………………………………………………………….…………... 6
-Le régulateur 7805 …………………………………………………………………….…………. 6
-Le ULN2003A ……………………………………………………………………………..…………. 7
-Les moteurs pas-à-pas ……………………………………………………………………….…. 7
4-Tests et validation ………………………………………………………………………………………..…………………. 9
a- Réalisation du circuit…………………………………………………………………………………………. 9
b- Essai du circuit ………………………………………………………………….…………………………….. 10
c- Réalisation des typons ……………………………………………………………………………………. 11
d- Développement de la carte ................................................................................ 11
e- Programmation du microcontrôleur ……………………..……………………………………….. 12
5- Conclusion ………………………………………………………………………………………………………………….… 13
6-Annexe ………………………………………………………………………………………………………………….……… 14
3
1-Introduction :
Dans le cadre de notre apprentissage de la programmation des microcontrôleurs,
nous avons opté pour une petite application qui serait à base de ces circuits intelligents.
L’idée étant d’intégrer le circuit en question dans un dispositif permettant de répondre un
besoin spécifique
En effet, notre projet consiste à commander deux moteurs pas-à-pas de façon à
simuler le mouvement d’un robot à 3 roues dont 2 font l’objet de notre réalisation. La
commande est entièrement assurée par la programmation d’un microcontrôleur de façon à
répondre exactement à nos besoins.
2-Présentation du projet :
On s’est proposé de réaliser un petit robot à trois roues qui pourrait se déplacer dans
tous les sens en jouant sur la vitesse de rotation des deux roues arrières. Le principe est
simple : on dispose de deux roues commandées et d’une troisième libre. Supposons qu’on
veut réaliser un mouvement de translation rectiligne du robot, il suffit donc de transmettre
la même vitesse aux deux roues.
De même si on désire faire tourner le robot, une légère augmentation de la vitesse
d’une roue par rapport à l’autre ferait l’affaire. La figure 1 illustre ce principe et présente la
disposition des roues.
Roue libre
2 roues commandables
Figure 1 : disposition des roues du robot
Pour des raisons de commodité nous avons choisi d’alimenter notre dispositif par une
batterie 9 V légère, peu encombrante en surface et abondante dans le marché. Les deux
moteurs sont désormais de petite taille mais il y a tout de même un risque que le courant
qu’ils absorbent soit en dessus des capacités de la pile et c’est justement pour cette raison
qu’on a adopté une commande par créneaux de tensions, une méthode qui sera expliquée
plus tard.
4
3 -Spécifications fonctionnelles
a-Le circuit de commande :
La fonction de commande est assurée par le PIC 16F84A, un microcontrôleur fabriqué par
MICROCHIP.
Figure 2 : Le microcontrôleur PIC16F84A
Ce circuit dispose de :
*VDD : la broche de polarisation.
*VSS : la masse.
* OSC1 et OSC2 : signaux d'horloges, ces broches sont connectées à un quartz.
* MCLR : Reset (Master Clear) ou tension de programmation.
*Le PORT A (17-18-1-2) : comprend 5 lignes Entrées/Sorties. Sa configuration et sa
programmation passent par l’utilisation de deux registres qui sont PORT A et TRIS A.
*Le PORT B (6->13): possède 8 lignes Entrées/Sorties configurables et programmables par
PORT B et TRIS B.
Les 4 premières broches du PORT A (RA0->RA3) sont configurées en sorties pour le pilotage
d’un des moteurs alors que la 5ème
(RA4) fonctionne en entrée afin de tester si le bouton de
Marche/Arrêt est appuyé ou pas.
Le 2ème
moteur est commandé via les 4 premières lignes du PORT B (RB0->RB3) qui sont
mises en sorties.
5
Faire tourner un moteur consiste à envoyer des impulsions sur ses 4 bornes selon la
séquence ci-dessous :
Sortie 1 1 0 0 1
Sortie 2 1 1 0 0
Sortie 3 0 1 1 0
Sortie 4 0 0 1 1
Figure 3 : Séquence de commande des moteurs
Chaque moteur reçoit cette séquence indépendamment de l’autre. Toutefois, pour
que le robot puisse marcher en avant, les deux moteurs doivent tourner à la même vitesse.
Pour ce faire, l’envoi des impulsions depuis les deux ports se fait obligatoirement avec la
même fréquence. Dans le cas contraire, le robot tourne ou bien gauche ou bien à droite.
6
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 atténuée du générateur vers le processeur et du
processeur vers les moteurs. En effet, il a fallut intercaler plusieurs composants dédiés à ce
genre de conversion de puissance à savoir le régulateur 7805 et le ULN2003A.
-Le régulateur 7805 :
Un régulateur sert à réguler ou stabiliser un potentiel sur sa broche de sortie, il peut
être fixe ou réglable, positif ou négatif par rapport à la masse. Pour notre cas le 7805 délivre
un potentiel positif par rapport à la masse et de valeur 5 V mais il faut noter que ceci n’est
réalisable que si la tension en entrée du régulateur est supérieure à 5 V.
Figure 4 : Le régulateur 7805
On a utilisé le régulateur pour pouvoir polariser le microcontrôleur à un potentiel de
5 V stable issu de la sortie « OUT » de celui-là. Le schéma de régulation se présente comme
suit :
Figure 5 : Régulation de la tension
9V 7805 5V
9V
PIC
16F84A
7
-Le ULN2003A :
Commercialisé par ST Microelectronics, il permet d’amplifier la tension entre son
entrée et sa sortie, cette dernière pouvant atteindre jusqu’à 50 V. Dans notre cas nous
aurons besoin d’avoir 9 V pour commander les deux moteurs.
L’amplification se fait grâce à la disposition d’une broche commune polarisée sur la tension
de sortie et connectée à 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 généralement commandés en
tension par la méthode dite commande par créneaux de tension. Ce type de moteurs est
très répondu surtout pour les applications nécessitant une bonne précision sur la position
angulaire sans avoir recours à l’asservissement et la régulation par des retours de boucles.
Leur usage le plus connu est dans les imprimantes à jet d’ancre et les lecteurs de CD des
ordinateurs…
8
Ces moteurs peuvent se présenter 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 d’un moteur pas-à-pas
La commande en créneaux de tension s’agit d’envoyer des impulsions de courte
durée sur les broches du moteur de façon alternée comme le montre la figure ci-dessous :
Figure 8 : Visualisation de la séquence de commande sur l’oscilloscope
4-Tests et Validation :
a-Réalisation du circuit :
Après avoir terminé l’étude théorique de ce projet, on est passé à la schématisation du
montage du circuit au moyen d’Isis. Le schéma obtenu est le suivant
Figure 10
théorique de ce projet, on est passé à la schématisation du
montage du circuit au moyen d’Isis. Le schéma obtenu est le suivant :
Figure 10 : Schéma global du circuit
9
théorique de ce projet, on est passé à la schématisation du
10
b-Essai du circuit :
Avant de procéder à 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 d’elles
représente une borne du moteur comme le montre la figure suivante :
Figure 11 : Tests sur la plaque à essais
Etant donné qu’on a utilisé une commande en tension des moteurs, le courant débité
sera faible ce qui explique la légèreté de luminosité des diodes LED.
On relève une séquence d’enclenchement des diodes deux à deux en faisant une rotation
qui correspond bien au fonctionnement défini auparavant dans notre programme. A priori le
programme ainsi le choix des composant sont adéquats, il faut donc passer à la réalisation
de la carte.
c-Réalisation des typons :
L’étape suivante consiste à faire le routage
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 supérieure
d-Développement de la carte
Une fois les typons sont prêts il ne reste plus qu’à passer au laboratoire et effectuer
les dernières tâches qui sont :
� L’insolation : on dispose le typon sur la glace de l’insoleuse, ensuite on
présente la face cuivrée photosensible sur le typon après avoir enlev
papier de protection et puis on referme l’insoleuse.
� La révélation : on plonge la plaque dans le produit révélateur jusqu’à ce que le
dessin apparaisse parfaitement et on la rince avec de l’eau.
� La gravure : dans cette étape, on a introduit la carte d
gravure qui dissout le cuivre dans les zones où il n’y a pas de pistes. Une fois
sortie, on rince la plaque avec de l’eau ensuite on ôte le produit de protection
des pistes à l’aide d’un chiffon imbibé d’alcool jusqu’à ce
brillantes.
� Le perçage : on a utilisé une mini perceuse sur un support à colonnes.
� Le montage : on a effectué la soudure des composants à l’aide d’un fer à
souder.
L’étape suivante consiste à faire le routage avec Ares. Il en découle, l’obtention 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
ace supérieure Face inférieure
Figure 12 : Les typons
Développement de la carte :
les typons sont prêts il ne reste plus qu’à passer au laboratoire et effectuer
:
: on dispose le typon sur la glace de l’insoleuse, ensuite on
présente la face cuivrée photosensible sur le typon après avoir enlev
papier de protection et puis on referme l’insoleuse.
: on plonge la plaque dans le produit révélateur jusqu’à ce que le
dessin apparaisse parfaitement et on la rince avec de l’eau.
: dans cette étape, on a introduit la carte dans la machine de
gravure qui dissout le cuivre dans les zones où il n’y a pas de pistes. Une fois
sortie, on rince la plaque avec de l’eau ensuite on ôte le produit de protection
des pistes à l’aide d’un chiffon imbibé d’alcool jusqu’à ce que les pistes s
: on a utilisé une mini perceuse sur un support à colonnes.
: on a effectué la soudure des composants à l’aide d’un fer à
11
avec Ares. Il en découle, l’obtention 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
Face inférieure
les typons sont prêts il ne reste plus qu’à passer au laboratoire et effectuer
: on dispose le typon sur la glace de l’insoleuse, ensuite on
présente la face cuivrée photosensible sur le typon après avoir enlevé le
: on plonge la plaque dans le produit révélateur jusqu’à ce que le
dessin apparaisse parfaitement et on la rince avec de l’eau.
ans la machine de
gravure qui dissout le cuivre dans les zones où il n’y a pas de pistes. Une fois
sortie, on rince la plaque avec de l’eau ensuite on ôte le produit de protection
que les pistes soient
: on a utilisé une mini perceuse sur un support à colonnes.
: on a effectué la soudure des composants à l’aide d’un fer à
12
e-Programmation du microcontrôleur :
Une fois tous les paramètres réglés il ne reste plus qu’à programmer notre
microcontrôleur avant de l’intégrer à la carte. Pour ce faire il existe des programmateurs sur
lesquels il suffit de monter le PIC et charger le fichier du programme généralement sous
l’extension .hex et c’est tout. Notre programmateur à nous est de marque ELNEC pouvant
supporter plusieurs modèles de microcontrôleurs et muni d’une petite application (PG4UW)
assurant le transfert du fichier .hex vers la mémoire EEPROM du PIC.
Figure 13 : Le programmateur de PIC (PIK PROG)
Figure 14 : L’application PG4UW
13
5- Conclusion :
Ce projet nous a été bénéfique dans la mesure où il nous a familiarisés avec la
manipulation des microcontrôleurs et plus précisément avec le PIC 16F84. En outre, ce
projet a énormément contribué à consolider nos connaissances dans la conception et
fabrication des cartes électroniques.
A travers ce projet on a su acquérir et l’esprit du travail en groupe avec tout
l’échange d’idées qui vient avec, et la capacité de bien coordonner et répartir les tâches.
14
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 0 entrypoint goto start ORG 4 intvector goto intvector start clrw movlw 0x0F movwf time1 movlw 0x05 movwf time2 movwf time3 clrw movwf PORTB bsf STATUS,RP0 movlw 0x00 movwf TRISB movlw 0x10 movwf TRISA bcf STATUS,RP0 loop btfss PORTA,4 call rot goto loop rot movlw b'00000011' movwf PORTB movwf PORTA call delay movlw b'00000110' movwf PORTB movwf PORTA call delay movlw b'00001100' movwf PORTB
15
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 movlw 10 movwf dc1 dl1 clrf dc2 dl2 nop nop decfsz dc2,F goto dl2 decfsz dc1,F goto dl1 return delay1 movlw 50 movwf dc1 dl11 clrf dc2 dl21 nop nop decfsz dc2,F goto dl21 decfsz dc1,F goto dl11 decfsz time2,F return call fonction2 fonction2 movlw b'00000011'
16
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