Vous êtes sur la page 1sur 50

PFAII 2AGE2

Remerciements

À l'achèvement de ce projet, avec très grand plaisir, nous


réservons
cette page en signe de gratitude et reconnaissance pour remercier
notre encadreur :

Monsieur Boujemaa Ben Salah, Maître de Conférences à L’ENIT,


pour l’opportunité qu’il nous a offert pour travailler sur ce projet,
pour sa disponibilité, ses conseils fructueux et pour toutes les
facilités qu'il nous a présentées durant toute la période du PFA.

Nos vifs remerciements s’adressent aussi à tous les enseignants de


L’ENIT pour la formation qu’ils nous ont fournie, ainsi qu’à tout le
personnel de L’ENIT pour leurs coopérations et leurs aides.

…

ENIT 1 2007-2008
PFAII 2AGE2

ENIT 2 2007-2008
PFAII 2AGE2

Sommaire
INTRODUCTION GENERALE...........................................................................................................6

PRESENTATION DU PROJET...........................................................................................................7

1. PRÉSENTATION GÉNÉRALE...........................................................................................................7
2. TRAVAIL DEMANDÉ.....................................................................................................................7

CHAPITRE I : PRÉSENTATION DES MOTEURS PAS A PAS......................................................8

I. DIFFERENTS TYPES DE MOTEURS PAS À PAS :.................................................................9


1) Les moteurs à aimant permanent :..........................................................................................9
a) Le moteur bipolaire :...........................................................................................................9
b) Le moteur unipolaire :.......................................................................................................11
c) Caractéristiques principales :............................................................................................12
2) Les moteurs à réluctance variable :......................................................................................12

CHAPITRE II: CONCEPTION ET RÉALISATION DU CONVERTISSEUR DE PILOTAGE. 15

II. CHOIX DES COMPOSANTS...........................................................................................................16


1) Choix du moteur....................................................................................................................16
2) Choix des circuits de commande...........................................................................................17
a) Commande par UCN5804B..............................................................................................17
b) Commande par 74LS 194................................................................................................18
c) Commande par les circuits L297 et L298..........................................................................19
3) Port parallèle LPT................................................................................................................21
III. FONCTIONNEMENT DES CIRCUITS L297ET L298....................................................................21
1) Le circuit L297......................................................................................................................21
2) Constitution du L297.............................................................................................................22
3) Le circuit L298......................................................................................................................25
IV. RÉALISATION PRATIQUE........................................................................................................27
1. Carte d’alimentation :..........................................................................................................27
2. Carte de commande...............................................................................................................28
a) Oscillateur.........................................................................................................................29
b) Tension de référence.........................................................................................................30
3. Interface PC-Carte de commande.........................................................................................31

CHAPITRE III: CONCEPTION ET DÉVELOPPEMENT D’UNE INTERFACE GRAPHIQUE


DE COMMANDE DES MOTEURS PAS À PAS..............................................................................33

I. LA PROGRAMMATION DE L'INTERFACE GRAPHIQUE...................................................................34


1. Le langage de programmation..............................................................................................34

ENIT 3 2007-2008
PFAII 2AGE2

2. L’utilisation des ports parallèles...........................................................................................35


a) Architecture du port parallèle...........................................................................................35
b) Fonction de chaque pins....................................................................................................35
3. La commande du port parallèle en visual basic....................................................................37
II. PROGRAMMATION......................................................................................................................38
III. PRÉSENTATION DU LOGICIEL.................................................................................................40

CONCLUSION GÉNÉRALE..............................................................................................................44

BIBLIOGRAPHIE :.............................................................................................................................45

ANNEXES.............................................................................................................................................46

ENIT 4 2007-2008
PFAII 2AGE2

Liste des figures


FIGURE 1: PRINCIPE DE COMMANDE DES MOTEURS PAS À PAS PAR PC 7
Figure 2 : structures interne d’un moteur bipolaire. 9
Figure 3 : séquence de commutation en mode Full step. 10
Figure 4 : séquence de commutation en mode Full step 10
Figure 5 : séquence de commutation en mode half step. 11
Figure 6 : structures interne d’un moteur unipolaire. 11
Figure 7:Moteur à reluctance variable 12
Figure 8: Fonctionnement par pas 13
Figure 9 : Fonctionnement par demi pas. 14
Figure 10: Brochage de UCN5804B 17
Figure 11: Schéma de fonctionnement du UCN5804B 18
Figure 12: Brochage du 74LS194 18
Figure 13 : Schéma de principe de la commande par 74LS194 19
Figure 14: Brochage du L297 19
Figure 15: Commande du moteur PAP par L297 et L298 20
Figure 16: Schéma de commande du moteur pas à pas à base de microprocesseur 22
Figure 17: Structure interne du L297 22
Figure 18: Fonctionnement du séquenceur 23
Figure 19: Chronogramme des sorties en mode demi pas 23
Figure 20: Circuit L298 25
Figure 21: Architecture interne de L298 25
Figure 22 : Fonctionnement des diodes de roue libre 26
Figure 23: Alimentation 5V stabilisée 27
Figure 24: LM317 TO3 28
Figure 25: Circuit d’alimentation variable 28
Figure 26: Brochage du LM317 TO3 28
Figure 27: Liaison entre L297 et L298. 29
Figure 28: Processus de détection de courant de décharge 29
Figure 29: Circuit oscillateur 30
Figure 30: Ajustement de Vref 30
Figure 31: Circuit de protection du PC 31
Figure 32: Optocoupleur 4n35 32
Figure 33: Fonctionnement de l’Optocoupleur. 32
Figure 34: Interface de VB6 35
Figure 35: Configuration de port parallèle 35
Figure 36: Interface du programme. 40

ENIT 5 2007-2008
PFAII 2AGE2

Liste des tableaux


Tableau 1: Comparaison des deux catégories de moteurs pas à pas 16
Tableau 2: Configuration du L297 24

ENIT 6 2007-2008
PFAII 2AGE2

INTRODUCTION GENERALE
Les moteurs pas à pas, sont utilisés chaque fois où on a besoin de positionner un objet
avec précision. La particularité de ce type de moteur est de s'arrêter dans une position
désirée, avec une grande précision. Les expériences montrent qu'il est difficile de
contrôler la rotation des moteurs "classiques".  Le moteur pas à pas au contraire, permet un
positionnement précis grâce à son mouvement discontinu par pas.
En effet, avec un moteur à courant continu, même en envoyant une impulsion électrique de
durée très précise, il est difficile de réaliser cette opération sans que des erreurs d'angle de
rotation du rotor n'aient lieu; cela est du au fait que le moteur DC possède une certaine
inertie qui ne permet pas de prévoir quel angle de rotation serait engendré entre le début de
l'impulsion et la fin de celle-ci. Tandis qu'avec un moteur pas à pas, chaque impulsion de
commande occasionne un déplacement d’un seul pas, ce qui correspond à un angle de
rotation très précis. De plus, le moteur pas à pas possède une durée de vie importante par
rapport à d'autres moteurs puisque il n’y a pas d'usure  (par exemple absence de balais),
c'est pour cette raison qu'ils sont mis en œuvre dans les domaines de:

 La Robotique ; en effet, la position d'un bras manipulateur, d'une table de transfert,


doit être connue de façon très précise car leurs travaux sont souvent minutieux.
 L’Informatique ; le déplacement d'une tête de lecture d'un lecteur de disquette doit
être effectué très précisément sous peine de ne pas retrouver l'information à lire sur le
support. Il en va de même dans certains disques durs d'ancienne génération. Les
imprimantes sont aussi truffées de ces moteurs, le déplacement de la tête d'impression,
l'avance du papier, et même sur quelques modèles, l'avance du ruban, sont pilotés par des
moteurs pas à pas.
 En réception ; le positionnement d'une parabole motorisée, est assuré par ces
moteurs.
 En astronomie ; certaines montures sont animées aussi par ces moteurs.
 En médecine ; pousse seringue (le moteur pas à pas permet un débit régulier pour la
perfusion)...
D’où la nécessité de concevoir un mécanisme pour le pilotage des moteurs pas à pas.
C’est dans ce cadre que se situe notre travail.

ENIT 7 2007-2008
PFAII 2AGE2
Il est organisé en deux chapitres, dans le premier chapitre on a présenté la conception et la
réalisation du convertisseur de pilotage. Le deuxième chapitre est réservé à la conception
et le développement d’une interface graphique de commande des moteurs pas à pas.

ENIT 8 2007-2008
PFAII 2AGE2

PRESENTATION DU PROJET

1. Présentation générale

Comme tous les transducteurs électromagnétiques, les moteurs pas à pas assurent une
conversion d’informations. La particularité de ces moteurs est d’assurer un mouvement
mécanique incrémental continu. Le but de notre projet est de concevoir une interface
graphique pour le pilotage des moteurs pas à pas.
Le principe de fonctionnement de l'ensemble est le suivant, figure1.
L'ordinateur contrôle la position du moteur en lui envoyant des signaux. Ces signaux passent
par une carte électronique de commande, qui répartit la puissance sur les différentes bobines
du moteur. De plus, l'ordinateur contrôle le mouvement du moteur en fonction des données
fournies par l'utilisateur à travers l’interface de commande :
En effet, le nombre de pas du moteur utilisé, la vitesse désirée, le sens de rotation et le mode
de rotation (pas entier ou demi pas),tous l'ensemble est contrôlé par un programme développé
en Visual Basic, qui permet de gérer facilement la carte de commande.

Figure 1: Principe de commande des moteurs pas à pas par pc

2. Travail demandé

 La conception et la réalisation d’une carte de commande des moteurs pas à


pas.
 La conception et la réalisation d’une interface graphique pour piloter la carte
de commande.

ENIT 9 2007-2008
PFAII 2AGE2

Chapitre I : Présentation des moteurs


pas à pas

ENIT 10 2007-2008
PFAII 2AGE2

I. DIFFERENTS TYPES DE MOTEURS PAS À PAS :

Il y a deux principaux types de moteurs:


 Moteur à aimant permanent
 Moteur à réluctance variable
Il y a deux types de moteurs pas à pas à aiment permanent
 les moteurs bipolaires
 les moteurs unipolaires
1) Les moteurs à aimant permanent :
Ce type de moteur est probablement le plus utilisé dans des applications autres qu'industrielles.
C'est un moteur à torque faible, et de basse vitesse idéal pour des applications comme celle des
périphériques d’un ordinateur. Sa construction engendre des pas relativement grands, mais sa
simplicité lui donne un avantage économique lorsqu'il est question d'une production à grand
volume et à faible coût. Son utilisation est toutefois limitée à des applications comportant peu
d'inertie, comme positionner la roue d'impression d'une imprimante marguerite. Il utilise le
principe de l’action d’un champ magnétique sur un moment magnétique (aimant) [B5].

a) Le moteur bipolaire :
Le courant de commande est bidirectionnel et l'avance d'un pas s'effectue par une séquence de
commutation des enroulements statoriques (Figure 2).

ENIT 11 2007-2008
PFAII 2AGE2

Figure 2 : structures interne d’un moteur bipolaire.

Pour ce type de moteur nous avons trois possibilités de commande. La première consiste à
alimenter les enroulements en suivant la séquence A vers B / C vers D / B vers A / D vers C
(BA est le même enroulement que AB mais alimenté par un courant de polarité inverse). Par la
suite nous simplifierons la notation pour une meilleure correspondance avec les
chronogrammes des phases en indiquant uniquement la phase qui est alimentée par un courant
"positif". Soit : A C B D. Cette séquence est connue sous le nom de "one phase on full step"
A tout moment il n'y a qu'une seule phase alimentée et nous travaillons en mode pas entier
(Figure 3).

Figure 3 : séquence de commutation en mode Full step.

ENIT 12 2007-2008
PFAII 2AGE2
La seconde possibilité est d'alimenter une paire de phase en même temps de façon à ce que le
rotor se positionne entre deux pôles. Appelé "two-phase-on full step" (deux phases à la fois en
pas entier) ce mode de commande est celui qui procure le couple le plus élevé.
La séquence sera donc : AC / CB / BD / DA (Figure 4).

Figure 4 : séquence de commutation en mode Full step

La troisième option est un mélange des deux première puisque l'on alimente tour à tour le
moteur sur une phase puis deux puis une... Cette séquence connue sous le nom de mode demi
pas procure effectivement une division par 2 de l’angle d’avance d’un pas, mais aussi un
couple moins régulier. La séquence qui en découle est la suivante : A / AC / C / CB / B / BD /
D /DA (Figure 5).

Figure 5 : séquence de commutation en mode half step.

Pour obtenir une rotation dans la direction opposée les mêmes séquences sont utilisées en
inversant l'ordre de défilement. Comme nous pouvons le constater sur les diagrammes, les
moteurs sont représentés avec une avance de pas à 90°. Dans les moteurs réels le nombre de
pôles a été multipliés pour réduire à quelques degrés seulement l'angle d'avance d'un pas. Le
nombre d'enroulements et la séquence de commande restent, quant à eux, inchangés.

ENIT 13 2007-2008
PFAII 2AGE2
b) Le moteur unipolaire :

Les moteurs unipolaires se différencient par le fait qu'ils sont à double bobinage ( Figure 6).
Le double bobinage est utilisé pour l'inversion du flux statoriques et le moteur se commande de
la même manière qu'un bipolaire excepte qu'un seul transistor pour chaque enroulement suffit
dans l'étage de puissance

Figure 3 : structures interne d’un moteur unipolaire.


Simplement, les moteurs unipolaires sont plus chers car leur fabrication réclame un double
bobinage. De plus, pour une taille donnée, ce type de moteur a un couple plus faible à cause
des enroulements qui sont plus fins.

Tous les moteurs à aimant permanent souffrent des oscillations (et des harmoniques qui s'en
suivent) générées par le rotor qui limitent la vitesse de rotation. Quand des accélérations et des
vitesses plus élevées sont nécessaires on utilisera de préférence les moteurs à reluctance
variable.

c) Caractéristiques principales :

 Couple élevé.
 Fréquence de commutation faible.
 Grande inertie donc meilleure stabilité.
 Amortissement interne des oscillations importantes.
 Nombre de pas compris entre 2 et 400 au tour.

2) Les moteurs à réluctance variable :


Il s'agit d'un moteur qui comporte un rotor à encoches se positionnant dans la direction de la
plus faible réluctance (1) : ce rotor, en fer doux, comporte moins de dents qu'il n'y a de pôles

ENIT 14 2007-2008
PFAII 2AGE2
au stator (Figure 7). Le fonctionnement du moteur est assuré par un pilotage du type unipolaire
et l'avance du rotor est obtenue en excitant tour à tour une paire de pôles du moteur (Figure 8).
 

Figure7:Moteur à reluctance variable

(1) la réluctance est le quotient de la force magnétomotrice d'un circuit magnétique par
le flux d'induction qui le traverse

Figure 8: Fonctionnement par pas

ENIT 15 2007-2008
PFAII 2AGE2
Lorsqu'une phase est alimentée (phase AA' sur le schéma), elle attire la dent du rotor la plus
proche (la dent 1 se positionne en face de A, la dent 4 en face de A') de telle sorte que le flux
embrassé soit maximal. Quand la phase BB' est activée (même raisonnement avec les dents 2 et
5), le rotor avance d'un pas dans le sens horaire ; l'activation de la bobine CC' (dents 3 et 6),
puis de la bobine DD' (dents 1 et 4), provoque l'avance du rotor de deux pas supplémentaires.
Le retour à la bobine AA' complète le cycle.
Remarque : Le rotor étant en fer doux, son mouvement est indépendant du sens d'alimentation
des différentes phases : le choix de la séquence d'alimentation détermine son sens de rotation.
1er cas : Fonctionnement par pas  (24 pas par tour, soit une avance de 15° par pas )
La séquence d'alimentation AA', BB', CC', DD', AA'... provoque une rotation horaire
La séquence d'alimentation AA', DD', CC', BB', AA'... provoque une rotation anti-horaire.
2ème cas : Fonctionnement par demi-pas  (48 demi pas par tour, soit une avance de 7,5° par
demi pas.
La séquence d'alimentation AA', AA' et BB', BB', BB' et CC', CC', CC' et DD', DD', DD' et
AA', AA'... provoque une rotation horaire. La séquence d'alimentation AA', AA' et DD', DD',
DD' et CC', CC', CC' et BB', BB', BB' et AA', AA'... provoque une rotation anti-horaire
(Figure94).

Figure 9 : Fonctionnement par demi pas.

ENIT 16 2007-2008
PFAII 2AGE2

ENIT 17 2007-2008
PFAII 2AGE2

CHAPITRE II: Conception et


réalisation du convertisseur de pilotage

ENIT 18 2007-2008
PFAII 2AGE2

Dans ce chapitre on va présenter, dans une première partie, les choix des circuits de
commande pour la réalisation de ce projet. La deuxième partie est consacrée à la
conception du convertisseur de pilotage ainsi que la carte d'alimentation.

II. Choix des composants 

1) Choix du moteur 

Un moteur pas à pas « stepping motor » est un moteur électrique de précision. En effet,
nous pouvons atteindre des déplacements seulement de quelques degrés. Un moteur
classique n'est pas assez précis pour certaines applications. Dans notre projet, on a choisi
un moteur à aimants permanents avec alimentation bipolaire car il présente les avantages
suivants :

- Couple élevé.
- Inertie importante donc meilleure stabilité.
- Amortissement interne des oscillations important.
- Nombre de pas compris entre 2 et 400 au tour.
En effet la comparaison du moteur bipolaire avec le moteur à réluctance variable justifie
bien notre choix.

Tableau 1: Comparaison des deux catégories de moteurs pas à pas

Critère de comparaison aimant permanent Réluctance variable


Couple de travail Elevé Faible
Vitesse de fonctionnement Faible Faible
Pas exécuté Faible Elevé
Inertie propre Elevé Faible
Couple de maintien Non négligeable Négligeable
Amortissement d'oscillation Plus important Moins important

ENIT 19 2007-2008
PFAII 2AGE2

2) Choix des circuits de commande 


Les moteurs pas à pas ont des circuits de commandes complexes. Il l’est encore plus si
on veut utiliser des composants discrets. Par contre, en utilisant des circuits intégrés, on
arrive plus vite à un résultat satisfaisant.
Le moteur pas à pas à aimant permanent est un moteur très répandu cependant le problème
qui se présente maintenant c’est comment commander ce moteur, autrement dit comment
peut- on faire varier le sens de rotation de moteur, l’angle de rotation, la vitesse, etc.…
Ce problème peut être facilement résolu en utilisant des circuits intégrés spécialisés dans
la commande des moteurs pas à pas .Ces circuits sont nombreux dont on va choisir le plus
efficace[B9].

a) Commande par UCN5804B

Le UCN5804B possède 16 broches comme décrit dans la figure10

Figure 10: Brochage de l’UCN5804B

La commande par UCN5804B possède les avantages et inconvénients suivants [B9] :


Avantages
 Simple à utiliser,
 Immunité contre les bruits,
 Fonctionnement dans une gamme de température de –25 à +85°C,
 Comporte un circuit de puissance intégré.
Inconvénients
 Il ne peut pas réaliser une commande idéale,
 On a besoin d’ajouter des diodes pour le circuit de puissance.

ENIT 20 2007-2008
PFAII 2AGE2
Le schéma de fonctionnement de UCN5804B est donné par la figure suivante:

Figure 11: Schéma de fonctionnement de l’ UCN5804B

b) Commande par 74LS 194


Le circuit 74LS194 est un registre à décalage 8 bits bidirectionnel, il comporte 16 broches
(Figure 12):

Figure 12: Brochage du 74LS194

ENIT 21 2007-2008
PFAII 2AGE2
Avantages
 Une immunité contre le bruit.
 Simplicité de commande par PC.
 Simple à utiliser.
Inconvénients
 Nécessite d’autres circuits intégrés pour fonctionner.
 Gamme de température faible.

Figure 13 : Schéma de principe de la commande par 74LS194

c) Commande par les circuits L297 et L298 

Le L297 est un composant qui contient toute la circuiterie de commande et de contrôle des
moteurs pas à pas unipolaires et bipolaires [B9] (Figure 14).

Figure 14: Brochage du L297

ENIT 22 2007-2008
PFAII 2AGE2
Le L297 simplifie la commande du moteur pas à pas. Ce circuit est composé d’un bloc
appelé translateur commandé par deux entrées logiques : le sens de rotation (CW/
CW ) et le mode de fonctionnement en demi pas ou en pas normal (HALF/FULL).
Une troisième broche est l’entrée CLK qui permet l’avance d’un pas. Le translateur
contient un compteur à 3 bits et quelques circuits logiques qui permettent de générer une
séquence basique à 8 pas. Le circuit de commande du moteur pas à pas L297 est
initialement prévu pour être utilisé avec un driver L298 ou L293E. Il reçoit les signaux de
contrôle en provenance d'un système à base de microprocesseur (exemple un PC) et génère
tous les signaux nécessaires à l'étage de puissance (Figure 15). 

Figure 15: Commande du moteur PAP par L297 et L298

Avantages du L297 :

 Il permet la commande des moteurs pas à pas dans deux sens de rotation.
 Il est simple, robuste, et tout est intégré: half/full step, réglage intensité par PWM, etc.,

 Il se branche directement sur un pont en H, exemple L298.


Ce circuit intégré peut être facilement commandé par ordinateur c’est à dire que les signaux
de commande peuvent être fournis par un logiciel de commande en utilisant les ports, série
et parallèle d’un PC.
 Retour à la position 0 en la signalant.
 Limitation de courant moteur et régulation dans les enroulements du moteur.
 Entrée de validation.
 Grande fiabilité.
Avantages du L298 :

 Gamme de voltage jusqu’à 46 V.


 Courant totale jusqu’à 2 A.
 Bas voltage de saturation.
ENIT 23 2007-2008
PFAII 2AGE2

 Protection sûre de la température.


 Voltage de l’entrée logique jusqu’à 1.5 V.
 Haute immunité contre les bruits.
 Commande des moteurs pas à pas dans deux sens de rotation.
 Gamme de température ambiante très acceptable (-40 à 130 °C).
En tenant compte de la disponibilité des circuits cités précédemment, on remarque que les
circuits L297 et L298 sont les plus avantagés à être sélectionnés. En plus ils sont les
circuits les plus économiques et les plus répandus dans le marché. Ces circuits assurent la
commande des moteurs à partir des données qu’ils reçoivent sous forme d'impulsions. Ces
impulsions peuvent être générées, soit manuellement, soit par ordinateur à travers un port
parallèle.
3) Port parallèle LPT 
Pour piloter le moteur pas à pas à partir de l’ordinateur, il faut utiliser un port de sortie de
données du PC ; les principaux ports envisageables sont le port parallèle, le port série et le
port USB [B5]. Nous avons opté pour la liaison à l’aide du port parallèle car celui-ci
dispose de 8 sorties séparées alors que les ports série et USB envoient les données les unes
à la suite des autres sur une seule et unique sortie, c’est pour cette raison que le port
parallèle est plus rapide lors de l’envoi des signaux de commande.

III. Fonctionnement des circuits L297et L298 


1) Le circuit L297  

Le circuit de commande des moteurs pas à pas L297 est initialement prévu pour être utilisé
avec un driver L298 ou L293E (voir annexe). Il reçoit les signaux de contrôle en
provenance d'un système à base de microprocesseur et génère tous les signaux nécessaires
pour l'étage de puissance (Figure 16). Ce circuit inclut deux régulations à découpage type
MLI (Modulation de Largeur d'Impulsion) pour réguler le courant des enroulements du
moteur. Avec un étage de puissance adapté, le L297 commande un moteur pas à pas
bipolaire à aimant permanent, un moteur unipolaire à quatre phases à aimant permanent ou
un moteur à reluctance variable à quatre phases. Le fait que ce circuit (L297) produise lui-
même, sous contrôle extérieur, les signaux de phase, facilite énormément le travail des
électroniciens et des programmeurs dans une application informatique. Il a été étudié pour
pouvoir se connecter au circuit L298 assurant l’alimentation en puissance.

ENIT 24 2007-2008
PFAII 2AGE2

Figure 16: Schéma de commande du moteur pas à pas à base de microprocesseur

2) Constitution du L297 

Le coeur du L297 est le bloc appelé "translator" sur la figure 17. C'est ce circuit qui génère
les séquences appropriées pour l'alimentation des phases en mode demi pas ou pas entier.

Figure 17: Structure interne du L297

Ce bloc est contrôlé par deux entrées de mode - le mode direction (CW / CCW) et le mode
pas / demi-pas (HALF/ FULL)- et l'entrée clock dont les impulsions d'horloge qu'on lui
applique font évoluer le séquenceur vers le prochain pas, deux entrées Sens1 et Sens2 qui ont

ENIT 25 2007-2008
PFAII 2AGE2
pour objectif de donner une tension image du courant circulant dans les phases du moteur.
Quatre sorties sont fournies par le séquenceur et attaquent le bloc logique qui contient les
fonctions "inhibe" et "chopper". La structure interne du séquenceur consiste en un compteur
3 bits (plus une logique combinatoire) qui génère les huit étapes de base (en code gray)
comme nous le voyons sur la figure 18.

Figure 18: Fonctionnement du séquenceur

Sur ce diagramme nous sommes en mode demi pas (Half) et en sens horaire (CW). Les
trois séquences de commande possibles sont extraites directement de cette séquence
principale. Le chronogramme des sorties en mode demi pas est visible sur la figure 19.

Figure 19: Chronogramme des sorties en mode demi pas

Le circuit intégré L297 possède quatre sorties de commande des étages de puissance, ainsi
que deux sorties supplémentaires d’inhibition de ces étages (lorsqu’il est utilisé avec le
L298). Ces deux sorties sont commandées par une logique interne qui sera déclenchée par
deux comparateurs. Ces deux comparateurs mesurent la valeur de la tension présente aux

ENIT 26 2007-2008
PFAII 2AGE2
bornes des deux résistances et qui est due au courant traversant les enroulements du moteur.
Lorsque la valeur de cette tension dépasse Vref l’alimentation sera coupée [B8].

Tableau 2: Configuration du L297

ENIT 27 2007-2008
PFAII 2AGE2

3) Le circuit L298 

Figure 20: Circuit L298

Le L298 possède 15 broches (voir annexe). Il se compose de deux étages de puissance


configurés en pont et commandés par quatre entrées logiques (A, B et C, D) ainsi que deux
entrées de validation INH1 et INH2. Il possède deux entrées d’alimentation, l’une pour le
moteur allant jusqu’à 46V et l’autre pour la logique interne. Deux entrées de validation
peuvent bloquer la commutation. Les émetteurs de chaque transistor sont connectés les uns
aux autres pour formuler les signaux SENS A et SENS B [B8].
Contrairement à la majorité des circuits, le circuit L298 ne contenant pas de diodes de
protection des transistors internes, il faut les câbler à l’extérieur du boîtier (diodes D1 à D8).
Ces diodes (BYW251) présentent des temps de commutation faible (4ns) et sont capables de
laisser passer un courant important (2A) (Figure 21).

Figure 21: Architecture interne de L298

ENIT 28 2007-2008
PFAII 2AGE2
Le principe de fonctionnement de ces diodes de roue libre peut être décrit par cet exemple;
Quand la bobine est hors alimentation après une séquence de commutation l’entrée inhib1
est alors activé pour décharger le courant emmagasiné à travers D2 et D3 au lieu de se
décharger à travers Q1, Q4 puis Rs, (figure 22):

Figure 22 : Fonctionnement des diodes de roue libre

Le L298 présente les avantages suivants :


Avantages :
 Gamme de voltage jusqu’à 46 V
 Courant total jusqu’à 4 A
 Bas voltage de saturation
 Protection sûre de la température
 Voltage de l’entrée logique jusqu’à 1.5 V
 Haute immunité contre les bruits
 Commande de moteur pas à pas dans deux sens de rotation
 Gamme de température ambiante acceptable (-40 à 130 °C)

Conclusion :
On a découvert dans ce qui précède des différents circuits intégrés conçus spécialement
pour la commande des moteurs pas à pas et on a fixé notre choix sur les circuits L297 et
L298. Ces circuits assurent la commande des moteurs à partir données qu’ils reçoivent sous

ENIT 29 2007-2008
PFAII 2AGE2
la forme d’impulsions. Ces impulsions provenant du port parallèle de l’ordinateur servent
comme des signaux de commande pour le circuit L297.

IV. Réalisation pratique 


1. Carte d’alimentation :
Dans notre carte d’alimentation (voir annexe) on dispose de deux transformateurs abaisseurs
le premier 220V/7V 10VA consacré pour l’alimentation stabilisée 5V des circuits intégrés, le
deuxième transformateur est de 220V/24V 40VA pour l’alimentation du moteur pas à pas et
le circuit L298. Le redressement sera assuré par un pont monophasé et le filtrage sera assuré
par un condensateur électrochimique [B1].

 Calcul du condensateur de filtrage :

C=I*T/∆Uc

Avec : UCmax = Umax alternatif - 2.Udseuil


Soit : Ucmax = Ueff alternatif x 1,414 – (2 x 0,7)
UCmini = Tension minimale désirée
Dans ce projet (voir figure23) : On veut que l’alimentation des circuits intégrés puisse
fournir une intensité de 1 A et une tension (moyenne) de7 V.
On peut admettre une ondulation (∆Uc) de 4 V, soit Ucmax = 7 + 2=9 V et Ucmini=7-
2=5V.
1 0.01
On obtient alors : C  = 2.5 mF = 2500 µF soit pratiquement, 2200µF
4

Figure 23: Alimentation 5V stabilisée

Pour la deuxième alimentation est stabilisée variable de 2V à 24V en utilisant la gamme LM


(Voir annexe) des circuits intégrés stabilisateurs de tension - LM317 TO3- capable de
fournir plus que 2A (Voir figure 24 et 25) [B8].

ENIT 30 2007-2008
PFAII 2AGE2

Figure 24: LM317 TO3

Figure 25: Circuit d’alimentation variable

La valeur de la capacité C7 (4700uF) est calculée comme précédemment. Lorsque on agit sur
l’ajustable la tension délivrée par le bloc IC1, R4 et R3 varie de 2V à 24V comme suit :
VO = VREF (1 + R2*R1) + IADJ* R2Avec VREF est une tension interne de référence fournie entre
le Vo et Vadj elle est égale à 1.25V donc la tension de sortie sera fonction de la résistance R 2,
figure26 avec IADJ=100uAmax(Figure 26).

Figure 26: Brochage du LM317 TO3

2. Carte de commande 
Cette carte est formée d’un bloc de base qui définit les liaisons entre le L297 et le L298
pour commander un moteur PAP, à aimant permanant, bipolaire ou unipolaire (figure 27).

ENIT 31 2007-2008
PFAII 2AGE2

Figure 27: Liaison entre L297 et L298.

Autre que les six entrées-sorties communes à L298 le composant L297 possède d'autres
entrées:

a) Oscillateur 
Le circuit L297 joue aussi le rôle de contrôle du courant de charge dans chacune des phases
du moteur commandé. Ce contrôle est assuré par un comparateur, bascule RS et une
résistance externe de sensation de courant, (Voir figure 28).

Figure 28: Processus de détection de courant de décharge

La bascule RS maintient l’envoi des signaux de commandes donc elle maintient


l’augmentation de courant de décharge dans RS, la tension dans Rs ainsi peut atteindre Vref le
comparateur dans ce cas remet la bascule à zéros, et donc annule l’envoi de signaux de

ENIT 32 2007-2008
PFAII 2AGE2
commande jusqu’à l’arrivée d’autres impulsions de l’oscillateur une autre comparaison sera
établie entre Vref et VRs. La fréquence d’oscillation du déphaseur est déterminée à partir d’un
Circuit RC comme le montre la figure suivante, (figure 29) Fosc = 1/(0.69*R*C) avec R doit
être supérieure à 10Kohm, R= R20+R16. Fosc varie entre 1Khz et 45Khz.

Figure 29: Circuit oscillateur


b) Tension de référence 
Dans ce projet la Vref et la fréquence d’oscillation varient selon les caractéristiques du
moteur. Vref (figure 30), est calculée à partir de cette formule : Vref=(5V/22K)*R3 , avec
R3 varie entre 0 et 20Kohm => Vref varie entre 0 et 4.54V

Figure 30: Ajustement de Vref

ENIT 33 2007-2008
PFAII 2AGE2
3. Interface PC-Carte de commande
Pour piloter notre carte électronique on a utilisé le port parallèle de l'ordinateur afin de
fournir à la partie commande de l'électronique les signaux utiles. Ce bloc joue le rôle d’une
interface qui assure l’envoi des signaux de commande provenant de l’ordinateur
(Figure 31).
Malheureusement ce genre de port est fragile et comme des remontées de courant sont
toujours possibles, nous avons donc eu besoin de le protéger. Cette isolation qui doit
protéger le micro-ordinateur admet plusieurs solutions technologiques:
 les relais.
 les transistors.
 les optocoupleurs.
Et on a choisi l'optocoupleur.

Figure 31: Circuit de protection du PC

Présentation de l'optocoupleur 

Un optocoupleur est un composant ou un ensemble de composants qui permet le transfert


d'informations entre deux parties électroniques isolées l'une de l'autre d'un point de vue
électrique (voir annexe). La première partie est un émetteur, et la seconde partie est un
récepteur. On peut l'assimiler à un composant qui a une entrée (émetteur) et une sortie
(récepteur). Quand on parle d'émission, c'est en général parce que l'on émet quelque chose.

ENIT 34 2007-2008
PFAII 2AGE2
Il s'agit d'une émission de lumière. D'où le préfixe opto de optocoupleur. L'émetteur produit
donc de la lumière (qui peut être visible ou invisible), et le récepteur, qui est sensible à la
lumière émise par l'émetteur (sensibilité maximale à la longueur d'onde utilisée pour la
partie émission), réagit plus ou moins en fonction de la quantité de lumière reçue. Le
couplage entre l'émetteur et le récepteur s'effectue donc intégralement par de la lumière.

Figure 32: Optocoupleur 4n35

Fonctionnement

Le fonctionnement est alors le suivant, (voir figure33) :


• Lorsque le bit de sortie du port parallèle est à l’état bas (0.2V environ), la diode est
bloquée. Elle n’émet donc pas de lumière et le transistor est bloqué.
• Lorsque le bit de sortie du port parallèle est à l’état haut (4.7V environ), la diode est
Passante. Elle émet alors de la lumière qui vient saturer le transistor. La tension de sortie
est alors Vcc-Vcesat soit environ 4.5V.
Nous réalisons donc une isolation électrique à condition de ne pas relier les masses entre
elles.

4N35

Figure 33: Fonctionnement de l’Optocoupleur.

ENIT 35 2007-2008
PFAII 2AGE2

Chapitre III: Conception et


développement d’une interface
graphique de commande des moteurs
pas à pas.

ENIT 36 2007-2008
PFAII 2AGE2

ENIT 37 2007-2008
PFAII 2AGE2

Dans ce chapitre on va s'intéresser dans la première partie à la représentation du langage


de programmation ainsi que la voie de communication avec le convertisseur de pilotage. La
deuxième partie sera consacrée pour la conception et le développement du programme de
l'interface graphique de pilotage des moteurs pas à pas, une fois réalisé une dernière partie
sera réserver pour définir le mode d'emploi de ce logiciel.

I. La programmation de l'interface graphique 


1. Le langage de programmation
Pour commander l’ouverture des ports parallèles, plusieurs choix étaient possibles :
VISUAL BASIC, BASIC et langage C permettaient assez facilement l’ouverture des ports
parallèles mais nous avons opté pour le VISUAL BASIC car il permet entre autres d’avoir
une visualisation graphique qui nous a notamment permis de faire une interface agréable et
intuitive. Comme son nom le suggère, Visual Basic est un système de programmation sous
Windows, qui attache une nette importance à l'interface graphique utilisateur. Le mot
"Basic" fait évidemment référence au langage BASIC (Beginners All-Purpose Symbolic
Instruction Code) [B6], langage le plus utilisé par les programmeurs depuis les débuts de
l'informatique. Visual Basic constitue une évolution par rapport au langage BASIC initial,
et comporte aujourd'hui plusieurs centaines d'instructions dont un grand nombre font
directement référence à l'interface graphique. Souhaitant développer des outils efficaces
avec un environnement graphique esthétique, interactif et convivial, Visual Basic est le
logiciel de programmation que nous avons retenu pour ce projet (voir figure 34).

ENIT 38 2007-2008
PFAII 2AGE2

Figure 34: Interface de VB6

2. L’utilisation des ports parallèles


a) Architecture du port parallèle (Figure35)

Figure 35: Configuration de port parallèle

b) Fonction de chaque pins 


1: STROBE

Cette ligne active au niveau bas indique à l’imprimante que les données sont présentes en
D0-D7 et qu’il faut les prendre en compte.
2 à 9: D0 à D7

ENIT 39 2007-2008
PFAII 2AGE2
Bus de données sur lequel est véhiculée la valeur du caractère à imprimer. On ne peut
écrire sur ce port, à moins d’avoir un port parallèle étendu (ports de type ECP/EPP)
ENTREE (si EPP) /SORTIE
10: ACK
L’imprimante met à 0 cette ligne pour indiquer à l’ordinateur qu’elle a bien reçu le
caractère transmis et que ce dernier peut continuer la transmission.
ENTREE
11: BUSY
L’imprimante met à 0 cette ligne lorsque son buffer de réception est plein. L’ordinateur est
ainsi averti que celle-ci ne peut plus recevoir de données. Il doit attendre que cette ligne
repasse à 1 pour recommencer à émettre.
ENTREE
12: PE
Signifie « paper error ». L’imprimante indique à l’ordinateur que l’alimentation en papier a
été interrompue.
ENTREE
14 : AUTOFEED
Lorsque ce signal est à 1, l’imprimante doit effectuer un suat de ligne à chaque caractère
reçu. En effet, certaines imprimantes se contente d’effectuer un simple retour chariot en
présence de ce caractère.
ENTREE/SORTIE
15 : ERROR
Indique à l’ordinateur que l’imprimante a détecté un erreur.
ENTREE
16 : INIT
L’ordinateur peut effectuer une initialisation de l’imprimante par l’intermédiaire de cette
ligne.
ENTREE/SORTIE
17 : SELECT IN
L’ordinateur peut mettre l’imprimante hors ligne par l’intermédiaire de ce signal.
18 à 25 : GND
Masse du PC.

ENIT 40 2007-2008
PFAII 2AGE2
3. La commande du port parallèle en visual basic
Le Basic autorise la gestion des entrées - sorties par l'utilisateur à partir des instructions:
- INP (Adresse), qui renvoie l'octet de donnée présent à l'adresse spécifiée,
- OUT Adresse, Donnée , qui écrit l'octet de donnée à l'adresse spécifiée.
Ceci présente l'intérêt de pouvoir utiliser les ports d'imprimantes à d'autres fins ou de
pouvoir assurer la gestion de cartes d'extensions (cartes d'acquisition). Cette utilisation est à
priori devenue impossible avec Visual Basic. On peut cependant avoir recours à une DLL
spécialisée InpOut32.dll, compilée sur Delphi 4 de Borland et dont le code source est
donné ci dessous:

library InpOut32;
uses SysUtils;
var ByteValue:Byte;
procedure Out32(PortAddress:smallint;Value:smallint);stdcall;export;
begin
    ByteValue:=Byte(Value);
    asm
        push dx
        mov dx,PortAddress
        mov al, ByteValue
        out dx,al
        pop dx
    end;
end;
function Inp32(PortAddress:smallint):smallint;stdcall;export;
begin
    asm
        push dx
        mov dx, PortAddress
        in al,dx
        mov ByteValue,al
        pop dx
    end;
    Inp32:=smallint(ByteValue) and $00FF;
end;
Exports

ENIT 41 2007-2008
PFAII 2AGE2
Inp32,
Out32;
begin
end.
Tout projet nécessitant l'utilisation de cette DLL doit contenir un module servant à déclarer
ces nouvelles fonctions que Visual Basic ne connaît pas[B7]. Il faut aller dans le menu
"Projet" puis cliquer sur "Ajouter un module". Inscrire alors dans ce module le code suivant
:
Public Declare Function Inp Lib "inpout32.dll"
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
L'utilisation se fait ensuite de façon classique par les instructions:
INP (Adresse) et OUT Adresse, Donnée décrites précédemment.
Exemples de programmation en BASIC 
OUT &H378, 16 met la sortie D4 (broche6) à l'état haut et les autres sorties D0...D3 et
D5...D7 à l'état bas.
OUT &H378, 3 met les sortie D0 (broche 2) et D1 (broche 3) à l'état haut et les autres
sorties D2...D7 à l'état bas.
OUT &H37A, 1 met la sortie STROBE (broche 1) au niveau logique 1 c'est à dire à l'état
bas.

II. Programmation 
Le but de ce logiciel est de générer quatre signaux pour le L297 :
 le sens de rotation
 le mode de rotation
 le signal d'horloge
 le rest
En fonction des données saisies par l'utilisateur qui sont : la vitesse, le nombre de pas du
moteur utilisé, le sens de rotation et le mode de rotation. Sachant qu’à chaque front montant
d'horloge le moteur avance d’un pas donc la vitesse sera proportionnelle à la fréquence
d'horloge générée par le programme au niveau du port parallèle. L'idée donc sera de mettre
ce signal à 1 puis à 0 et d’ajuster le temps de commutation.

ENIT 42 2007-2008
PFAII 2AGE2

Donc on va calculer r (le retard ) en fonction de la vitesse et de nombre de pas.


Soit x la vitesse en tr/min
Soit y le nombre de pas
y tr/min y/60 tr /s y*x/60 pas /s

Il faux avoir y*x/60 impulsions par seconde.


Donc la période du signal sera=60/(y*x) r=30/(y*x)
Supposons qu'on va générer seulement le signal d'horloge sur D0, l’algorithme de la
procédure sera :
REPETER
signal =1
Retard ( r )
signal =0
Retard ( r )
TOUJOURS
Ce code sera traduis en VISUALBASIC par :
DO
OUT &H378, 1
retard 3000
OUT &H378, 0
LOOP
Il faut maintenant programmer la procédure retard et pour ça on va utiliser la fonction
"timer" qui renvoie une valeur avec une précision de l'ordre de la fraction de seconde, une
valeur de type entier représentant le nombre de secondes écoulées depuis minuit.
Public Sub Retard(DureE As Single)
Dim R As Long
R = CLng(2000) * 365
R = Timer + DureE
Do While R > Timer
DoEvents
ENIT 43 2007-2008
PFAII 2AGE2
Loop
End Sub
Donc en changeant la valeur de la fonction retard qui dépend de la vitesse et du nombre de
pas on va changer la fréquence du signal d'horloge ce qui entraîne la variation de vitesse du
moteur.

Les autres signaux seront plus simple à manipuler puisque une fois choisis ils garderont les
mêmes valeurs durant une séquence de commande .Par exemple pour le choix de sens de
rotation : si on va demander que le moteur tourne dans le sens antihoraire il suffit de
d'ajouter 22 =4 au sortie sur le port parallèle puisque d'après le circuit de commande la pin
CW/CCW du L297 est reliée à la broche 4 du port parallèle.
Par des traitements conditionnels selon les valeurs données par l'utilisateur le programme
change la valeur de sortie pour faire fonctionner correctement le moteur.

III. Présentation du logiciel 

Figure 36: Interface du programme.

ENIT 44 2007-2008
PFAII 2AGE2
La case à cocher : rotation infini permet de choisir entre la rotation continue c’est-à-
dire jusqu'à l'appuie sur le bouton d'arrêt ou la rotation pendant un nombre fini de pas. si
on coche cette option le champ nombre de pas à faire sera automatiquement désactivé.
la case à cocher : commande par curseur permet de choisir entre la saisie de vitesse
directement dans le champ correspondant ou la variation de la vitesse par le curseur. Si on
coche cette option le champ vitesse sera désactivé automatiquement et utilisé pour afficher
la valeur de vitesse atteint par le curseur.
Le champ vitesse : permet de saisir le vitesse désiré en tours/min, il n'est accessible
que si la case commande par curseur est décoché.
le champ nombre de pas: permet de fixer le nombre de pas de moteur utilisé.
Le champ sens de rotation :

Permet de choisir entre le sens horaire CC et le sens antihoraire CW.


Le champ sens de rotation:

Permet de choisir entre le mode demi pas et le mode pas entière


le champ nombre de pas à faire : permet de choisir le nombre total de pas à faire si on
n'est pas dans le mode rotation infini.

Ce logiciel comporte aussi un menu "aide"


Ce menu comporte trois options :
L'option à propos permet d'afficher quelques informations concernant ce
programme :

ENIT 45 2007-2008
PFAII 2AGE2

l'option brochage de port parallèle permet d’afficher la fenêtre qui définit les pins du
port parallèle :

Pour faciliter son utilisation ce programme comporte


des textes d'aide pour ne pas se tromper lors de la saisie des données:

Par exemple :
ENIT 46 2007-2008
PFAII 2AGE2

des messages d'erreurs et d'informations :

Par exemple :

Conclusion :
Cette interface représente une boite de dialogue entre l'utilisateur et la machine, elle facilite
le réglage du sens et de la vitesse de rotation afin de lui permettre d'exploité ce mouvement
dans l'application qu'il désire effectuer.

ENIT 47 2007-2008
PFAII 2AGE2

Conclusion générale

Dans ce projet de fin d’année nous avons contribué par la réalisation d’une interface de
pilotage d’une carte de commande des moteurs pas à pas à offrir à l’utilisateur des usages
multiples du moteur pas à pas assuré par un mode de commande choisi selon le besoin.
En effet dans le premier chapitre on a réalisé une carte de commande en utilisant des
circuits spéciaux pour optimiser la dimension de notre carte et au cours de la fabrication on
a pu voir clairement la différence entre l’aspect théorique et l’aspect pratique.

Concernant le deuxième chapitre, le but essentiel était de développer un programme d’une


interface en Visual Basic permettant le pilotage du moteur pas à pas. Ce chapitre nous a
offert la possibilité de développer nos compétences informatiques et nous a permit de savoir
l’intérêt obtenu suite à la liaison de l’informatique et la machine.

Comme perspectives nous pouvons signaler que ce projet peut être le noyau d’un équipement
médical (pousse seringue) toute fois si on réalise une partie mécanique pour convertir le
mouvement de rotation en mouvement de translation.

Pour conclure nous ne pouvons être que satisfaits du déroulement du PFA car cette
expérience nous a donné une idée sur les différents problèmes qui surgissent au cours de la
réalisation d’un projet.

ENIT 48 2007-2008
PFAII 2AGE2

Bibliographie :

[B1] Christophe FRANCOIS,’ Génie électrique’, édition ELLIPSE 2006. pp312-322

[B2] Stéphane VALKOV, ‘Electronique analogique Cours avec problèmes résolus’,

CASTEILLA pp162-177.

[B3] Tahar NEFFATI, ‘ Electricité Générale’, Editions DUNOD.

[B4] Patrice Oguic, ‘moteur pas à pas et Pc’, édition ELLIPSE 2006, p47-80

[B5] Jean JACQUIN,’Les moteurs pas à pas(principe et application)’,édition

DUNOD,1974.

[B6] D. MANIEZ,’Guide de programmeur Microsoft Visual Basic,’édition Microsoft press

DUNOD, Janvier 2002.pp157-280.

[B7] D.MANIEZ,’Programmer des composants avec Microsoft Visual Basic’, édition

Microsoft press DUNOD, Janvier 2002.

[B8] www.st.com (Datasheet des circuits intégrés)

[B9] www.savoirtoutfaire.com (circuit de commande des moteurs pas à pas)

[B10] www.abcelectronique.com

[B11] www.developpez.com (programmation en VISUAL BASIC)

[B12] www.sitedezero.com (programmtion en VISUAL BASIC)

ENIT 49 2007-2008
PFAII 2AGE2

ANNEXES

ENIT 50 2007-2008

Vous aimerez peut-être aussi