16
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

Commande d'un moteur pas-à-pas

Embed Size (px)

Citation preview

Page 1: Commande d'un moteur pas-à-pas

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

Page 2: Commande d'un moteur pas-à-pas

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

Page 3: Commande d'un moteur pas-à-pas

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.

Page 4: Commande d'un moteur pas-à-pas

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.

Page 5: Commande d'un moteur pas-à-pas

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.

Page 6: Commande d'un moteur pas-à-pas

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

Page 7: Commande d'un moteur pas-à-pas

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…

Page 8: Commande d'un moteur pas-à-pas

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

Page 9: Commande d'un moteur pas-à-pas

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

Page 10: Commande d'un moteur pas-à-pas

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.

Page 11: Commande d'un moteur pas-à-pas

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 à

Page 12: Commande d'un moteur pas-à-pas

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

Page 13: Commande d'un moteur pas-à-pas

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.

Page 14: Commande d'un moteur pas-à-pas

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

Page 15: Commande d'un moteur pas-à-pas

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'

Page 16: Commande d'un moteur pas-à-pas

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