Vous êtes sur la page 1sur 16

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

1
SOMMAIRE
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

2
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.

3
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.

4
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.

5
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 :

9V 7805 5V

PIC
16F84A
9V

Figure 5 : Régulation de la tension

6
-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…

7
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

8
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 : Schéma global du circuit

9
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.

10
c-Réalisation des typons :

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
connections de notre circuit.

Face
ace supérieure Face inférieure

Figure 12 : Les typons

d-Développement
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é
enlev le
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 dans
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 soient
s
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.

11
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

12
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.

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 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

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 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'

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

Vous aimerez peut-être aussi