[ Accueil ] [ CONTACT ] [ PLAN du Site ] [ RCNV ] [ Publications ] [ Chantiers Bateaux ] [ Technique Modélisme ] [ Electronique ] [ Radios Vintage ] [ Multi-Switch ] [ Vrac ] [ Astuces ] [ Liens ] [ Base ] [ Compteur ]
 
       ... rgl

 

Moteur Pas à Pas

 

(c) R.Legat jr

 

 

SOMMAIRE:

01 - Introduction - Présentation - Généralités - types de moteurs

02 - L'origine du moteur Pas à Pas dans l'Horlogerie

03 - Les séquences de commande du moteur Pas à Pas Unipolaire

04 - Les séquences de commande du moteur Pas à Pas Bipolaire

05 - Contrôle des charges inductives

06 - Driver de puissance pour moteur Unipolaire : Commutation et diodes de roue libre. Schémas

07 - Driver de puissance pour moteur Bipolaire: Les ponts en H, le contrôle de courant, Réalisation d'un driver complet. Schémas

08 - Transformer un moteur Unipolaire en Bipolaire. Contrôle et comparaison du courant de maintien 

09 - Augmenter le nombre de pas d'un moteur PAP: Conception, Mode Micro-pas (800 Pas/T)

10 - Programmes de pilotage des Moteurs Unipolaires et Bipolaires

 

      Introduction - Présentation - Généralités

Principes des Moteurs à courant continu et moteur PAP

 

Moteur DC à balais

Moteur BrushLess

 

Moteur Pas à Pas

      Source: hsmagnets.com/blog/theory-operation-motors/      learn.sparkfun.com/tutorials/motors-and-selecting-the-right-one

Un moteur pas à pas se distingue d'un moteur classique par le fait qu'il peut être positionné, arrêté et bloqué dans une position angulaire précise.
On peut alors le positionner et l'arrêter après avoir déterminer un nombre de tours précis.
Cette particularité est ainsi utilisée dans de nombreux domaines: Machines outils, machines CNC, robotique, motorisation automobile, ...

Les moteurs pas à pas ne sont pas des moteurs rapides.
Etant dépourvus de balais et parfois équipés de roulements à billes pour les moteurs de haute qualité, ils ont une durée de vie extrêmement longue et ne nécessitent aucun entretien.

Ces moteurs fonctionnant cependant en boucle ouverte (Pas d'asservissement de position), ils ne récupèrent pas leur position de consigne en cas de "glissement", appelé aussi "perte de pas".

Ils fonctionnent sur le principe universel de l'attraction de 2 pôles magnétiques opposés et de la répulsion de 2 pôles identiques.

Ils sont principalement constitués d'un rotor en fer doux ou magnétisé de pôles successifs N-S-N-S, ... et d'un stator composé de bobines qui doivent être alimentées de manière appropriée.
Nous allons voir, en détail, dans cette page, les différents types de moteurs Pas à Pas et les séquences particulières d'alimentation de leurs bobines.

 Il existe différents types de constitutions de moteurs pas à pas:

  - Les moteurs à aimant permanent, qui se divisent en deux types: Les Bipolaires et les Unipolaires
       Un aimant permanent est solidaire de l'axe du moteur (rotor). Des bobines excitatrices sont placées sur la paroi du moteur (stator)
       et sont alimentées chronologiquement.
       Le rotor s'oriente suivant le champ magnétique créé par les bobines.

    - Les moteurs à réluctance variable. (Réluctance: Propriété d'un matériaux de s'opposer au passage d'un flux magnétique)
       Il ne contient aucun aimant permanent.
       Il comporte un rotor en fer doux, muni d'encoches se positionnant dans la direction de la plus faible réluctance.
       En effet, le fer doux a la particularité de très bien conduire les champs magnétiques.
       Du coup, si un champ magnétique le traverse, il voudra absolument s’aligner dans son sens.
       Ce rotor, en fer doux, comporte moins de dents qu'il n'y a de pôles au stator.

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


  
- Les hybrides, qui combinent les deux premiers cités.
 
                                                                     Source: sam.electroastro.pagesperso-orange.fr/dossiers/pasapas/moteurpas2.htm

 

 

 

 

 

 

 

 


Connectique d'un PAP
à réluctance variable.

Le rotor est constitué de fer doux.

Il n'y a pas d'aimant permanent.

En ce qui nous concerne, nous allons nous intéresser aux moteurs à aimant permanent (Unipolaires et Bipolaire)

En fonction de la structure des bobinages de leur stator, on distinguera deux types de moteurs dont le rotor est constitué d'aimants permanents:

 

 

 - Le moteur Unipolaire.

Il est dit à 4 phases.
L'inversion du champ magnétique du stator est obtenue en choisissant l'un ou l'autre demi-enroulement du même stator.
Il est donc plus facile à piloter que le bipolaire mais le fait de n'utiliser qu'une partie de l'ensemble du bobinage du stator limite la puissance de ces moteurs.
Un moteur Unipolaire pourra cependant fonctionner comme un moteur Bipolaire si on n'utilise pas le "point milieu" de la bobine.
Nous verrons plus bas les possibles modifications à faire pour transformer un moteur Unipolaire en moteur Bipolaire.

 

 

 

- Le moteur Bipolaire

Il est dit à 2 phases.
L'inversion cyclique du champ magnétique du stator est obtenue en changeant le sens d'alimentation de chaque bobine.
Le contrôle est donc un rien plus complexe à réaliser et nécessitera un étage dit "Pont en H".
Le fait que chaque bobine est intégralement alimentée, à bobinage égal, on obtiendra un couple deux fois plus important que pour le moteur Unipolaire.

 

     L'origine du moteur Pas à Pas dans l'Horlogerie

L'évolution du moteur bipolaire à impulsions électriques fait l'objet du brevet n° 971418 pris en mai 1940, déposé par la société Hatot, mais dont la paternité sera enfin reconnue à Marius Lavet en mai 1963.
Ce p
remier moteur préfigure le moteur pas à pas, dit "moteur Lavet", ainsi que son utilisation par la suite en horlogerie fine, voire en bijouterie, avec l'emploi rapide des nouveaux matériaux magnétiques comme le platinecobalt.
Ce moteur pas à pas utilisé en horlogerie permettra à l'industrie horlogère européenne, avec les montres électroniques à quartz et à aiguilles, de lutter contre l'invasion japonaise des montres à affichage numérique, et de ne pas sombrer. (Source: fondam.org/Portraits/MariusLavet)

Ce sont toujours les dérivés de ce même moteur qui équipent encore toutes les montres à aiguilles.
Auteur d’une cinquantaine de brevets pendant sa carrière, il lègue une partie de ses biens pour soutenir l’innovation par le biais de la remise du prix de l’ingénieur inventeur Chéreau-Lavet ».
 

 

     

      

Les éléments du micro-moteur Lavet

Le micro-moteur Lavet est composé des éléments suivants :
   -la bobine avec le noyau
   -le stator (statique)
   -le rotor (rotation)

La bobine est réalisée avec un fil de cuivre isolé, d'un diamètre de 20 µm (un cheveu a 60 µm), d'une longueur de 50 m,
enroulé 10 000 fois autour d'un noyau. Noyau qui, comme le stator, est en fer magnétique doux.
Le stator de forme très complexe, offre un logement au rotor.
Le rotor, en samarium cobalt, est un cylindre creux ou non suivant le montage.
Il est magnétisé de façon permanente. Le rotor a deux positions d'équilibre stable par tour.

Fonctionnement

Lorsqu'une impulsion électrique (d'une duré inférieure à 10 ms) parcourt la bobine, un champ magnétique se propage du noyau dans le stator.
Sous l'effet de ce champ, le rotor est dépositionné et fait une rotation d'un demi-tour pour se repositionner sous l'effet de son magnétisme.
La polarité de l'impulsion détermine le sens dans lequel le champ magnétique va parcourir le stator.
Comme le rotor, après son demi-tour, se positionne en créant des conditions magnétiques opposées à celles du premier pas,  il faut une impulsion
de signe contraire à la précédente pour permettre de le repousser à nouveau d'un demi-tour (toujours dans le même sens de rotation).
Ce cycle se répète inlassablement.

 

Positionnement

Le rotor est monté sur un arbre (axe en horlogerie) sur lequel une denture est taillée.
Elle engrène avec les mobiles du rouage, permettant de transmettre la rotation du rotor aux aiguilles.
Pour les calibres avec une aiguille de secondes, le rotor tourne de 180° chaque seconde, mais l'aiguille de secondes ne parcourt que 6°.
Ce phénomène est obtenu par une démultiplication de l'engrenage.

C'est sur cette aiguille que l'on mesure la force mécanique (appelée couple utile) transmise par le micro-moteur.
C'est également à partir de cette aiguille que l'on mesure le couple de positionnement Tp.
Couple s'opposant à la rotation du rotor lors des chocs.
Le micro-moteur est l'élément qui consomme la plus grande partie de l'énergie.

(Source: futura-sciences.com/sciences/dossiers/physique-fonctionnement-montre-quartz-21/page/3/)

 

                                             P~= 100µW

Le concept de ce moteur ne permet donc que de disposer de deux positions distinctes. Il s'agit donc d'un moteur à 2 pas /par tour.

Le principe universel des pôles magnétiques qui s'attirent ou se repoussent, utilisé ici avec intelligence, va être développé plus avant pour aboutir à des moteurs de plus forte puissance et présentant d'avantage de pas de positionnement. 

 

    Les séquences de pilotage du moteur UNIPOLAIRE

   

Le moteur PAP UNIPOLAIRE est donc constitué de deux bobines, mais en réalité il faut dire quatre.

En effet, chacune de ces paires va devoir pouvoir créer un champ magnétique dans deux sens différents.

Chaque bobine comprend ainsi un "point milieu".

Ces deux points communs sont connectés ensemble et sont raccordé sur un pôle de l'alimentation du système.

Il peut s'agir du +Vcc comme du -Gnd. Ce choix influencera le sens de rotation, en fonction de la séquence de commande.

Les bobinages d'un moteur unipolaire sont alimentés toujours dans le même sens par une tension unique d'où le nom d'unipolaire.


 
                     Composition d'un petit moteur pas à pas Unipolaire, à aimant permanent,  de 48 pas / Tour
 


Dans le boîtier de ce petit moteur unipolaire, disponible pour une pincée de Cents
sur le Web, un train d'engrenages démultiplie l'angle de rotation de l'axe de sortie.

Ces moteurs 28BYJ-48, initialement de 64 pas de 5.625°, sont équipés d'une démultiplicatio à engrenages nylon d'un rappoer de 1/64... ce qui donne alors 4096 pas /Tour.
Leur couple est de 34,3 mN.m et une phase aurait une résistance de 60 Ohms.

Ces petits moteurs existent aussi en 12V, sous diverses impédances mais sous la référence unique de 28BJY48 !!!

DataSheet: http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino#Interfacing_circuits

http://www.emartee.com/product/41886/28BYJ%2048%20High%20Quality%20Stepper%20Motor%205V

Nous verrons plus bas, comment transformer ce petit moteur PAP Unipolaire
en moteur PAP Bipolaire et nous verrons l'incidence sur le couple ainsi disponible.

 Il existe plusieurs séquences possibles d'alimentation des bobines. Elles influenceront le couple et la vitesse de rotation du moteur.

Nous allons voir, dans les diagrammes établis ci-dessous, les séquences dite par pas entiers et par demi-pas.

Par "PAS ENTIERS"

Il existe deux modes possibles de contrôle.
La première méthode illustée n'utilise qu'une seule demi-bobine par pas.
La seconde fait intervenir deux demi-bobines à chaque pas. Elle permet donc d'obtenir un couple deux fois plus important.

      

    

Le sens du courant d'alimentation des bobines
ne changeant pas, il suffit d'une simple commutation
de chaque bobine dans l'ordre de la séquence requise.

Ici, séquence pour Pas entier avec couple maximum
car deux bobines sont alimentées en même temps.

Pour chaque pas, les états binaires de chacune des bobines donnent une valeur décimale, ou Hexadécimale, qu'il suffira de programmer séquentiellement sur le port de sortie d'un Microcontrôleur.

Le sens de rotation sera déterminé par l'ordre des états donnés successivement. Ainsi la séquence 9 - 5 - 6 - 10 fera tourner le moteur dans un sens (avec son couple maximal).
Tandis que la séquence 10 - 6 - 5 - 9 le fera tourner dans l'autre sens !

La vitesse de rotation dépendra simplement du délai introduit entre chaque changement d'état du port de commande.

  Par "DEMI-PAS"

L'avantage de pouvoir commander le moteur en demi-pas est qu'on double le nombre de positions possibles.

Dans le cas d'une CNC, par exemple, cela augmenera la précision de l'axe déplacé par le moteur.

L'examen des deux tableaux de ci-dessus, nous montre qu'en combinant alternativement Pas entier/couple minimal et Pas entier/couple maxi, on obtient bien le double de positions possibles.

La séquence devient alors 8 - 9 - 1 - 5 - 4 - 6 - 2 - 10 pour tourner dans un sens, ou  10 - 2 - 6 - 4 - 5 - 1 - 9 - 8 pour tourner dans l'autre sens.

 

    Les séquences de pilotage du moteur BIPOLAIRE

   

Le moteur Pas à Pas Bipolaire dispose, dans son principe théorique, de 2 bobines.

Les bobinages d'un moteur bipolaire sont alimentés une fois dans un sens, une fois dans l'autre sens.
Ils créent une fois un pôle nord, une fois un pôle sud d'où son appellation de bipolaire.

 

Leur conception est parfois particulière dans la mesure où leurs bobines peuvent être dédoublées pour être câblées en série ou en parralèle.

Le tableau ci-contre nous montre un exemple de bobinage d'un moteur pas à pas bipolaire.

Le moteur choisi dans ce cas propose deux modes de cablage en bipolaire, soit en série, soit en parallèle.
Le moteur possède ainsi 4 bobines, deux d'entre elles constituant la bobine A, les deux autres constituant la bobine B.

Un mode de cablage en série consiste à mettre les deux bobines à la suite l'une de l'autre, cela implique un courant limité mais demande une source de tension supérieure.

Le cablage en parallèle implique un courant plus élevé mais une tension moindre.



 

 Séquences de commande

Pour contrôler un moteur PAP Bipolaire, il ne suffira plus de simplement commuter une bobine à l'alimentation mais il va être nécessaire d'alterner le sens du courant traversant ces bobines.
L'analyse des diagrammes suivants sera plus explicite.

   

 

Animation: Pas entier, couple Maximal

Source: https://coursenligne1s6.fr/si-terminale-moteur-pas-a-pas

 Au premier examen, nous constatons immédiatement que les séquences d'alimentation sont identiques à celles d'un moteur PAP Unipolaire.

Soit  9 - 5 - 6 - 10 ou  10 - 6 - 5 - 9 pour une rotation avec couple maximal (2 bobines alimentées) ou 8 - 1 - 4 - 2 ou  2 - 4 - 1 - 8 pour une rotation avec couple minimal (une seule bobine alimentée par pas). 

 

 

 

Animation: Demi-Pas

Source: https://coursenligne1s6.fr/si-terminale-moteur-pas-a-pas

 Nous constatons que la séquence reste indentique à celle du moteur Unipolaire.

Soit 8 - 9 - 1 - 5 - 4 - 6 - 2 - 10 pour tourner dans un sens, ou  10 - 2 - 6 - 4 - 5 - 1 - 9 - 8 pour tourner dans l'autre sens.

 Mais quelle différence de pilotage alors si les séquences sont identiques !?

La grande différence est que le courant parcourant les bobines du PAP Bipolaire, change de sens !

Nous allons voir, plus bas, que cette particularité influencera le type de driver à utiliser.

 

     Contrôle des charges inductives

 Il serait illusoire de croire que le pilotage d'un tel moteur PAP se résumerait seulement à gérer l'ordre d'alimentation des bobines suivant les séquences vues ci-dessus.

 En effet, il va falloir tenir compte des phénomènes physiques qu'induisent les bobines :

1. Courant induit inverse à la coupure d'alimentation d'une bobine.

 
 

Le moteur PAP étant composé de bobines, il constitue ainsi une charge inductive.

Quand le courant alimentant une bobine s'arrête brutalement, par exemple à chaque changement de pas, la forte variation du champ magnétique va créer un courant induit inverse dans cette bobine.

Une forte surtension en polarisation inverse apparait alors à ses bornes, et à celles du transistor de commutation lorsque celui-ci s'ouvre pour couper l'alimentation d'une bobine.

On peut dire que la bobine restitue instantanément son énergie magnétique sous forme d'un courant électrique important.

Plus la variation de champ magnétique sera importante, plus le courant sera important... et dans le cas d'une coupure franche de l'alimentation de la bobine, le courant sera donc maximal.

La bobine se trouve alors polarisée en inverse et cette surtension importante cherche à s'échapper par le chemin le plus faible... càd le contact d'ouverture qui risque assurément de "claquer".

 

 

 Protection des contacts d'alimentation d'une bobine

 

Pour solutionner ce premier problème, nous allons utiliser une diode de roue libre  qui va se charger d'amortir la surtension au travers de la résistance interne de la bobine.

On retrouve ainsi une telle protection aux bornes de la bobine d'un relais, par exemple.

On utilisera de préférence des diodes "rapides" (exemple: Ultra-Fast Avalanche Sinterglass Diode: BYV27-50 à BYV27-200, ...)

Pour des applications moins critiques, de simples 1N400x pourront suffire.

 

 

 

2. Contrôle du courant de maintien lors de l'arrêt du moteur.

 

Lorsque la bobine est alimentée, le rotor commence à se déplacer pour s'aligner avec le champ magnétique produit.

Cette rotation du rotor provoque une force contre-électromotrice.

Retenons qu'une bobine réagit toujours pour s'opposer au sens du courant qui la traverse.

Lorsque le rotor est stabilisé et aligné avec le champ, cette force électromotrice disparait !
La bobine, de très faible résistance interne, se trouve alors alimentée par la forte tension d'alimentation du moteur.

On se retrouve dans une situation identique à un moteur classique à courant continu bloqué qui serait maintenu de force à l'arrêt !

Ainsi, une bobine de l'ordre de 2 ohms, alimentée en 36V serait parcourue par un courant de 36/2 = 18 Ampères !

Nous verrons, ci-dessous, comment contrôler ce courant de maintien pour éviter de griller le moteur.

     Etages de puissance - Drivers Moteurs UNIPOLAIRES

    

   
                 Pilotage par driver-buffer afin de ne pas griller le MCU                                             ULN200x, ULQ200x ...
                                                                    Darlington Arrays 500-mA-Rated Collector Current

Comme chaque bobine est toujours traversée par un courant établi dans le même sens,
le contrôle consistera simplement à commuter les bobins dans l'ordre séquentiel décrit
ci-dessus. 

Les séquences pourront être disponibles aux pins de sortie d'un petit microcontrôleur.

Pour des courants plus importants, on se tournera vers des transistors darlington ou mieux,
des Mos-FET.

On remarquera, sur ces schémas, les diodes de roue libre protégeant les transitors de
commutation.

 

 

 

 

 

 

Pour des moteurs de faible puissance, de simples driver/buffer type ULN 2003, 2803, ...
suffiront amplement.

 

Il est toujours prudent de mesurer le courant parcourant les bobines lorsque le moteur
est à l'arrêt pour s'assurer que le driver utilisé supportera le courant de maintien.

 

A noter, qu'il n'est absolument pas nécessaire de disposer d'un MCU (Microcontrôleur) pour piloter un tel moteur !

Voici un schéma à base d'un classique NE555

       
Le principe de ce circuit à base de NE555 est d'alimenter successivement, en boucle et dans le bon ordre, à la manière d'un chenillard, les 4 enroulements du moteur il n'est donc pas surprenant de retrouver un CD4017 accompagné d'un oscillateur dans le circuit.
La tension de la source U1 doit être compatible avec ce que requière le CD4017, le NE555, les mosfets (Vgs) et le courant qu'on désire faire circuler dans les enroulements du moteur.
J'ai ajouté une résistance de limitation R9 pour effectuer un réglage précis du courant (U1 fournissant une tension constante dans mon cas), cette méthode a pour défaut d'entraîner une perte d'énergie.

Les résistances R1 à R4 ont pour but d'éviter que les capacités indésirables grille-source "Cgs" à l'entrée des mosfets créent un appel de courant à leur mise sous tension par le CD4017 quand elles sont déchargées et fatiguent ou détruisent ce dernier.
R5 à R8 servent à vider ces capacités "Cgs" des mosfets pour être sûr qu'ils se bloqueront quand il n'y aura plus de signal sur la grille.
Comme le CD4017 impose un 0 logique sur ses sorties quand elles sont "éteintes" et non pas un collecteur ouvert ou un drain ouvert et que les résistances R1 à R4 ont une valeur autour de seulement 100 ohms, ces résistances supplémentaires R5 à R8 sont tout de même potentiellement inutiles.

D1 à D4 sont des diodes de "roue-libre" (voir ci-dessus) qui assurent la circulation du courant lors du blocage des transistors et leurs épargnent des surtensions destructrices.
Ces sutensions sont provoquées par les enroulements du moteur qui représentent une charge inductive.

( Source: https://sites.google.com/site/iodurevideos/electronique/moteurs-pas-a-pas-bipolaires-unipolaires-demonstration )

  

Couple L297 + L298 utilisé pour piloter un moteur PAP UNIpolaire !

Nous verrons ci-dessous, plus en détail, les spécificités de ces deux circuits.


           https://www.aavbae.net/bol16/enfoque.htm

 

     Etages de puissance - Drivers Moteurs BIPOLAIRES

      

Un driver pour moteur PAP BIPolaire devra être impérativement composé d'un Pont en H.

Ce pont en H sera précédé d'un étage de contrôle d'intensité du courant alimentant les bobinages.

Nous allons analyser en détail ces composants, ci-dessous.

 1. Pont en H

Dans le cas des moteurs PAP Bipolaires, le sens du courant devant changer dans les bobinages, une simple commutation n'est donc plus suffisante.

Pour solutionner cette particularité, nous allons devoir utiliser un "Pont en H" pour chacune des deux bobines.

               
                                                                                                   
                                                                                            Principe du Pont en H  et  des "diodes de roue-libre".
                                                                                                        

Le pont en H consiste en 4 contacteurs permettant de changer le sens du courant parcourant une bobine.

Pour commander un moteur Bipolaire, il faudra donc utiliser 2 ponts en H, soit un pont par bobine.

Vous remarquerez les diodes de roue libre qui se chargent ici de réinjecter le courant induit de surtension, vers les lignes d'alimentation, pour protéger les contacts.

Fort heureusement, des circuits intègrent des doubles ponts en H et nous permettent d'optimiser nos réalisations.

Les plus usités pour le pilotage des moteurs PAP sont le L298 qui peut supporter 4A sous 46Volts.
Le L293 est compatible Pin to Pin mais ne supporte que 2A par phase pour une alimentation de 36V.
Enfin, le L293D est compatible mais ne supporte que 1,2A par phase pour une alimentation de 36V.

     

Vous remarquerez, sur cet éclaté du L298, l'accès aux émetteurs de chaque drivers.
Notez que le circuit L293E dispose de 4 accès à ces "Emetteurs, contre deux seulement pour le L298.

Ces accès permettent de placer des résistances en série avec les bobines du moteur.
Ces résistances, ici nommées RS1 et RS2 auront une valeur de 0,5 ohm et leur puissance sera calculée en fonction du courant qui les traversera.
Ainsi, par exemple, pour 2 A, la puissance dissipée sera de RI², soit 0,5 x (2)²  = 2 Watts.

En pratique, par bobinage, on utilisera deux résistances d'un ohm (2 à 5 Watts suivant moteur utilisé) mises en parallèle pour obtenir les 0,5 ohm.

Alors, suivant le courant parcourant ces résistances, une différence de potentiel apparaîtra à leurs bornes. (U= i x R)
Cette tension sera mesurée par le circuit L297 afin de contrôler et réguler le courant de commande. (v. ci-dessous)

  

Ce simple circuit L298 reprenant deux ponts en H pourrait suffire à piloter
un moteur PAP Bipolaire.

Il existe d'ailleurs de petits modules peu onéreux qui ne reprenne qu'un L298,
comme celui repris ci-contre.

Cependant, si on n'utilise pas de régulateur de courant (L297), il sera
parfois nécessaire de désactiver les broches EnA et EnB lors de l'arrêt
des moteurs pour éviter d'endommager les bobinages.

 

  2. Contrôle du courant de maintien

Comme expliqué plus haut, il sera nécessaire de contrôler le courant de maintien parcourant les bobines lorsque le moteur est arrêté avec ses bobines alimentées.

Pour cela, il existe un circuit particulièrement dédié aux ponts en H vu ci-dessus.

Ce contrôleur est le L297.

    

Usage des connexions:

Contrôle microcontrôleur :
   - pin 17 - CC/CCW : donne le sens de rotation du moteur.
   - pin 18 - CLOCK : fait avancer ou reculer le moteur d’un pas (ou demi-pas) à chaque front montant.
   - pin 19 - HALF/FULL : permet de choisir le mode demi-pas ou pas complet.
   - pin 20 - RESET : remet le composant en étant initial (ABCD 0101)
   - pin 11 - CONTROL : permet de choisir sur quelles sorties agira la protection de surintensité. (au choix sur les INH ou les ABCD)
   - pin 3   -  HOME :  est une sortie à collecteur ouvert. La sortie passe à 1 lorsque ABCD = 0101

Contrôle d’intensité :
Le L297 compare les tensions (SENS1 ou SENS2) présentes sur les faibles Résistances Série (RSA, RSB) à une tension de référence (VREF) .
Cette tension de référence déterminera donc le courant maximal autorisé dans les bobines suivant les spécifications du constructeur du moteur.

Si la tension aux bornes de Rs est supérieure à la tension de référence, le L297 coupe momentanément l’alimentation de la bobine empêchant de la détruire.
Un oscillateur réactive alors périodiquement l’alimentation de la bobine.
Ce système fonctionne finalement comme un hacheur d'alimentation, apparenté à un mode PWM.

Si on désire piloter plusieurs moteur pas à pas avec plusieurs L297, on peut synchroniser leurs horloges.

Un premier L297 "Maître" utilise alors son horloge et transmet son signal aux autres L297 "esclaves" par l'intermadiaire des pins SYNC, reliées entre elles.

 - pin 15 -  Vref : entrée de la tension de référence
 - pin 14 - SENSE_1 : capteur de courant pour la bobine 1
 - pin 13 - SENSE_2 : capteur de courant pour la bobine 2
 - pin 16 - OSC : point milieu d’un filtre passe bas servant de base de temps à l’oscillateur.
 - pin  1  - SYNC : sortie de l’oscillateur.

          
                                                                                           Schéma type combinant L297 et L298

 Réalisation d'un driver complet pour moteur PAP Bipolaire

Source: http://www.twovolt.com/2016/08/26/l298-l297-based-high-current-bipolar-stepper-motor-driver/

    

   

 Des recherches sur le WEB vous permettront d'en découvrir une multitudes d'autres:

                                                
                                               L6210 - 4A Dual Schottky Diode Bride

Revoici un autre schéma reprenant le couple traditionnel utilisé dans le monde entier pour conduire un petit moteur pas à pas bipolaire (jusqu'à 1,5-2amp / phase).
Bien qu'il existe des -circuits intégrant le L197 et le L298 ces simples circuits sont si communs et si connus qu'il n'est pas possible de les omettre.

Le schéma est très traditionnel pour un pilotage par pas entier ou par demi pas.
La résistance de détection de courant de 0,5ohm est obtenue par 2 Res. de 1 ohm mises en parallèle.

Le signal d'entré peut atteindre 25000 Hz s et le Pwm est d'environ 35 Khz.

La tension maximale applicable est de 32V.
N'oubliez pas d'utiliser un large refroidisseur en aluminium et, si possible, un petit ventilateur car la chaleur générée par le l298 est importante !

Si vous analysez les datasheets des L297 et L298, vous pouvez envisager d'enlever les 8 diodes de roue libre si vous utilisez, à leur place, un L6210 (4A Dual Schottky Diode Bridge).

http://www.cuteminds.com/en/elettronicagen/elettronica/32-bipolar-stepper-motor-controller-using-l297-l298    

 

 

 

 

Autres Drivers

 
            Driver complet à TB6560 pour 4€ !


      Driver à base de TB6600 pour à peine 6€ !

 Enfin outre la paire L297/L298, sachez qu'il existe une multitude d'autres circuits conçus pour piloter les moteurs Bipolaires:

  A4988 "Pololu" 35V/2A Stepper Motor Driver Carrier

  L6208 - DMOS driver for bipolar stepper motor

  L9935 - Two phases stepper motor driver (= L297 + L298)

  TB6560AFG  40V / 2,5A Peak  PWM Chopper-Type. Bipolar Driver IC for Stepping motor Control

  TB6560AHQ  40V / 3,5A Peak

  TB6600HG     50V / 5A Peak

Les moteurs PAP Bipolaires étant utilisés, notamment pour le contrôle des axes des machines CNC vous pouvez trouver pour quelques Euros
des Drivers Board complets à base de TB6560 et TB6600. (Voir photos ci-contre)

Ils permettent le réglage du sens de rotation (DIR), de la fréquence des pas déterminant la vitesse de rotation (Step),des micros-pas (1/1, 1/2, 1/4, 1/8,1/16, 1/32),
de l'intensité des bobines, ... et sont pourvus d'optos-coupleurs pour une parfaite isolation de sécurité de l'unité MCU !

Ils se trouvent pour une pincée d'Euros après une très brêve recherche sur le web... 


     Transformer un moteur PAP Unipolaire en Bipolaire 

Il est aisé de modifier notre petit moteur Unipolaire en Moteur BIpolaire.
En effet, il suffit de déconnecter et sectionner les connexions issues des points communs des bobines.

Nous alimenterons donc ainsi entièrement chaque bobine, ce qui augmentera significativement le Couple du moteur.

 

           

     
   Adaptation du moteur 28BYJ-48 (5 ou 12V)
 Il suffit de sectionner la piste reliant les deux "points-communs" et désouder le fil rouge devenu inutile.

Mesure et comparaison du courant de maintien à l'arrêt du moteur.

Le courant de maintien du moteur BIPolaire, à vide, mesuré est de 55 mA .

La résistance d'une bobine est mesurée à 55 Ohms.
Le courant théorique serait de 5v /55 ohms = 90 mA sans tenir compte de la commutation au travers du pont en H.

Avant transformation, le courant mesuré dans le moteur UNIpolaire, connecté via un driver ULN2003 était de 180mA.
Le courant théorique étant de 5v /27 ohms = 185mA.
La résistance de la bobine étant moindre de moitié pour le moteur UNIpolaire puisqu'on ne considère qu'une demi bobine par pas.

Couple mesuré

Le DataSheet annonce un couple de 34.3mN.m (à 120Hz) avec la démultiplication d'origine intégrée.

Cela représente une Force exercée par un poids de 343 gr (343 gcm) au bout d'un bras de 1cm,  34,3 gr au bout de 10 cm ou de 3,43 gr au bout d'un levier d'un metre, ...

Un internaute a partagé des tests de Force et a effectivement mesuré un Couple maximal de 380 gcm en mode Unipolaire full-Step et 300 gcm en mode demi-pas.

Après la modification en moteur Bipolaire, le couple maximal atteint alors sans surprise, le double, soit  800 gcm  !

Source: http://www.jangeox.be/2013/10/change-unipolar-28byj-48-to-bipolar.html

 

  Augmenter le nombre de pas d'un moteur Pas à Pas 

Nous avons vu, ci-dessus, lors de l'étude des séquences de pilotage qu'il était possible, avec un moteur muni de 4 bobines, de disposer de 4 pas entiers ou de 8 demi-pas...

La question que l'on pourrait alors se poser est: comment obtenir d'avantage de pas pour augmenter la précision de ces moteurs tout en ne conservant que 4 bobines de pilotage.

Il y a deux moyens d'y arriver:

1: Conception physique du moteur

Sur les illustations présentées qui suivent, nous verrons la conception d'un moteur Bipolaire de 96 pas... constitué de nos 4 bobines d'activation.

Pour obtenir 96 pas, pilotés par seulement 4 bobines, le principe consiste d'abord à créer un rotor constitué de 48 pôles Nord et de 48 pôles Sud, alternés successivement et régulièrement.

Pour y arriver, on utilise un aimant permanent rond sur lequel sont placés plusieurs disques en fer doux de forte réluctance.

Parfois, ce système est dédoublé pour obtenir 4 "roues dentées" magnétisées, voire triplé... 
      

     
                               UNE paire d'aimants permanents N / S                                                             DEUX paires d'aimants permanents N/S + N/S
                                                                      Remarquez les bobines qui "coiffent" l'ensemble des aimants permanents

        

 

 

Ces disques en fer doux disposent chacun, dans cet exemple, de 48 "dents" qui sont placées de telle manière que, vues de face, elles se succèdent régulièrement dans le plan axial.

 

Le rotor est alors entouré des quatres bobines d'activation qui sont munies d'un noyau à 3 dents de polarisation qui coiffent entièrement les zones dentées Nord et Sud du rotor.

Les bobines de chaque axe forment une paire par une connexion électrique en série.
On dispose donc ainsi de 4 contacts d'alimentation : 2 pour les deux bobines de l'axe vertical (A, A') et 2 autres pour les bobines de l'axe horizontal. (B, B'). 

Vous remarquerez cependant que les 2 axes, horizontal et vertical, des paires de bobines ne sont pas parfaitement perpendiculaires !
L'axe horizontal est en fait positionné de telle manière que les dents de polarisation de ses bobines se placent exactement entre les dents du rotor alors que pour les bobines de l'axe vertical, les dents du rotor et du stator sont parfaitement alignées.

                

 Activation d'un pas

               

               

                

 

Figure1:

Partons de la position de départ représentée sur ce premier schéma.

Les pôles sud (en bleu) du rotor sont alignés sur les bobines de l'axe vertical qui sont alimentées et polarisées Nord (rouge).

Vous remarquerez que les dents de l'axe horizontal ne sont pas alignées par le fait que les axes ne sont volontairement pas perpendiculaires.

 

Si on désire faire tourner le moteur vers la droite, nous voyons que la première dent du rotor qui devrait s'aligner sur la bobine de droite
est bleue (Sud).

Nous allons donc couper l'alimentation de la bobine du haut (et du bas) et polariser Nord les bobines de l'axe horizontal.

 

 

  

 

Figure2:

La polarisation Nord des bobines de l'axe horizontal a attiré les proches pôles Sud du rotor.

Le moteur s'est ainsi déplacé d'un pas vers la droite.

 

 Si on regarde maintenant la bobine du haut, le prochain pôle du stator à devoir aligner, pour une rotation vers la droite, est un pôle Nord (rouge).

Nous allons donc maintenant devoir polariser les bobines de l'axe vertical en pôle Sud (bleu) et couper l'alimentaion des bobines de l'axe horizontal.

 

 

 

 

Figure3:

Le moteur s'est déplacé d'un nouveau pas vers la droite par polarisation Sud (bleue) de l'axe vertical, attirant ainsi la première dent Nord la plus proche. 

 

 

 

 

 

 

Conclusion:

La rotation est obtenue en polarisant correctement tantôt les bobines de l'axe vertical, tantôt celles de l'axe horizontal.

La polarisation de chaque paire de bobine se succédant suivant la séquence : Nord, Off, Sud, ... ou inversément pour tourner dans l'autre sens.

 

   L'animation ci-contre représente une rotation complète des 96 pas entiers du rotor.

  On y voit clairement l'inversion de polarisation cyclique des bobines, obtenue par inversion du sens du courant d'alimentation.

Pour les moteurs qui ont un nombre de pas plus élevé, la technologie se complique !
Dans le cas par exemple d'un moteur pas à pas de 200 pas par tour, que l'on appelle moteur pas à pas hybride, car il mélange deux techniques: celle à aimant permanent et celle à reluctance variable,
le rotor est constitué de cinquante dents tandis que le stator est constitué de 8 pôles possédant 5 dents.

    Pour chaque pas, l'alignement des dents entre le stator et le rotor est différent.

Les dents s'alignent de façon à permettre le meilleur passage du flux magnétique.

A chaque pas, l'orientation du flux change et le rotor tourne.

2. Mode Micro-Pas: Augmenter la précision

Comme nous avons pu le constater, l'axe du moteur pas à pas tourne afin de s'orienter le mieux possible par rapport au champs magnétique.
Dans les explications illustées, jusqu'à présent, nous avons travaillé avec des valeurs de courant dans les bobinages qui sont toujours maximum.
A présent, au lieu d'appliquer le courant maximum nous allons faire évoluer les courants dans les bobinages A et B de façon à avoir un pourcentage de la valeur complète comme le montre le graphique ci-dessous.
Ainsi l'axe se place dans ldes positions intermédiaire où la résultante des flux passe le mieux sachant que cette position se trouve entre diverses positions de courant max:

        

Dans ce cas-ci, chaque pas du moteur est divisé en 4.

C'est à dire qu'entre la position maximal du courant et la position 0 on divise en 4 palliers de telle manière un moteur qui réalisait 200 pas par tour en réalise à présent... 800 !

Bien évidemment pour contrôler un moteur de cette manière il est nécessaire d'avoir une électronique évoluée.

Source: http://www.roboticus.org/electronique/45-le-moteur-pas-a-pas.html

 

 

Des circuits de commande spécialisés ont été présentés un peu plus haut sur cette page. Ils permettent de configurer le pilotage en pas entiers, 1/2 pas, 1/4 pas, 1/8 pas, 1/16 pas, ...

Circuit A4988 "Pololu"

Attention toutefois à ne jamais alimenter ce type de driver sans
y avoir connecté les 4 fils du moteur... fumée fatale garantie !

 

    Programmes de pilotage des moteurs PAP

Moteur UNIPolaire

Afin de bien comprendre le programme qui va suivre, il va falloir identifier les broches ABCD des deux bobines pour les faire coïncider avec les croquis des séquences repris au début de cette étude.

Le petit schéma du moteur, ci-dessous, va nous permettre d'identifier les bonnes connexions et les nommer correctement.

                                 

Il ne faudra pas donc tenir compte de la sérigraphie indiquant ABCD reprise sur le board incluant les drivers ULN2003 et les led témoins.

    De plus, certains DataSheet inversent les fils rose et orange !

  Les connexions correctes à réaliser sont finalement celles reprises sur la figure ci-contre.

 Programme de test d'un moteur UNIpolaire 28BYJ-48 /5V

'===================================================

'Commande moteur PAP UNIpolaire 28BYJ-48

'Picaxe 20X2 to ULN2003 Driver

'Rg.Legat (c)2018

'===================================================

  #Picaxe 20X2

'===================================================

'Motor: 28BYJ-48 5V

'D-Blue Motor Wire   --> In1 ULN2003 Board ---> C.0 of 20X2 – pîn 10

'A-Pink Motor Wire   --> In2 ULN2003 Board ---> C.3 of 20X2 – pin 9

'C-Yellow Motor Wire --> In3 ULN2003 Board ---> C.1 of 20X2 – pin 8

'B-Orange Motor Wire --> In4 ULN2003 Board ---> C.2 of 20X2 – pin 7

'Red Common Motor Wire --> +5vcc

'10K pull-Up on pinB.7 for On/Off Motor

 

Symbol Index = b0 ‘Index of For/Next

Symbol Period = W1'Delay ms(Motor Speed by spacingsteps)

Symbol Seq = W2   'Must be 4 for Full step, 8 for Half step

Symbol MOTR = W3  'LSB Byte (Nibble) Motor state (to send to PortC)

 

DirsC = %00001111'C.0 to C.3 Output

 

'Sequences: At choice ;)

'**********************************************************************

'EEprom 1,(9,5,6,10) :Seq = 4 '---> Full Step MAX Couple - TurnLeft

'EEprom 1,(8,1,4,2)  :Seq = 4 '---> Full Step MIN Couple - TurnLeft

'EEprom 1,(8,9,1,5,4,6,2,10):Seq = 8 '---> Half Step - TurnLeft

'**********************************************************************

 

'EEprom 1,(2,4,1,8)  : Seq = 4 '---> Full Step MIN Couple - Turn Right

 EEprom 1,(10,6,5,9) : Seq = 4'---> Full Step MAX Couple - Turn Right

 

Period = 1 'Motor Speed

 

'=== Main Prg ===================

 

'Motor Off 1 sec.

MOTR = %00000000

Let OutPinsC = MOTR

Pause 1000

 

DO

 If pinB.7 = 0 then 'Motor On

  For index =1 to Seq

    Read b0, MOTR ' Read EEprom, stock to W3 (MOTR)

    Let OutPinsC = MOTR   'Send data to PortC

    Pause Period 'Pause ms (or 1/100 ms if Pauseus)

  Next

 'Else = Motor Off

 Endif 

LOOP

 

'=====================================================================

Constatations pratiques:

Le test a été effectué sur une platine BreadBoard alimentée avec un "mini" régulateur 7805/SMD dépourvu de radiateur.

Les pas entiers ou les demi-pas sont réguliers mais le régutaleur chauffe très vite et très fort, nécessitant d'arrêter rapidement le test !

La prochaine étape sera donc de mesurer le courant circulant dans les bobinages...                                          

Pour ce faire, nous allons arrêter le moteur en conservant les bobines sous tension suivant la configuration du dernier pas effectué.
Il suffit de porter la pinB.7 à 1 en déconnectant le jumper de masse prévu à cet effet, laissant ainsi B.7 porté à un niveau logique = 1 par la R.Pull-Up de 10K.

Mesures:

La résistance annoncée au dataSheet est de 60 ohms par phase. (de A à B et de C à D)
La mesure nous donne en fait 56 ohms mais il faut retenir qu'on n'exploite qu'une demi-bobine, soit 28 ohms à considérer.
Intensité calculée:= 5v/28. = 180mA

Intensité réellement mesurée, par phase excitée, (à vide de charge) en sortie du driver : 130mA ...

A cela s'ajoute la consommation des 4 Leds du board mais n'explique pas vraiment l'échauffement du 7805 !?

 

Moteur BIPolaire

Ici encore, pour bien comprendre le programme, il sera impératif de bien respecter
les connexions des bobines du moteur et celles des sorties du MCU Picaxe.

Pour obtenir un moteur Bipolaire, les connexions des points communs des bobines
ont été sectionnées et le fil rouge inutilisé a été désoudé.

                       

                                Moteur 28BYJ-48 modifié en Bipolaire

 

  '===================================================

'Commande moteur PAP 28BYJ-48 Modifié en BIPOLAIRE

'Picaxe 20X2 to L293D/L298N Driver

'Rg.Legat (c)2018

'===================================================

  #Picaxe 20X2

'===================================================

'Motor: 28BYJ-48 5V

 

'A-Pink Motor Wire   -->OutA- L293 Board / In1 L293 -> C.0 pin 10

'B-Orange Motor Wire -->OutA+ L293 Board / In3 L293 -> C.1 pin  9

'D-Blue Motor Wire   -->OutB- L293 Board / In4 L293 -> C.3 pin  8

'C-Yellow Motor Wire -->OutB+ L293 Board / In1 L293 -> C.2 pin  7

'10K pull-Up on pinB.7 for On/Off Motor

'Pin8 L293 = Vin Motor(5V) / Pin16 L293 = 5V  

 

Symbol Index = b0 ' Index of For/Next

Symbol Period = W1'Delay ms(Motor Speed by spacingsteps)

Symbol Seq = W2   'Must be 4 for Full step, 8 for Half step

Symbol MOTR = W3  'LSB Byte (Nibble) Motor state (to send to PortC)

 

DirsC = %00001111'C.0 to C.3 output

 

'Sequences: At choice ;)

‘*****************************************************************

'EEprom 1,(9,5,6,10) :Seq = 4 '---> Full Step MAX Couple - TurnLeft

'EEprom 1,(8,1,4,2)  :Seq = 4 '---> Full Step MIN Couple - TurnLeft

'EEprom 1,(8,9,1,5,4,6,2,10):Seq = 8 '---> Half Step - TurnLeft

'*****************************************************************

 

 EEprom 1,(2,4,1,8) : Seq = 4'---> Full Step MIN Couple - Turn Right

'EEprom 1,(10,6,5,9) : Seq = 4 '---> Full Step MAX Couple - Turn Right

 

Period = 1 'Motor Speed

 

'=== Main Prg ===================

 

'Motor Off 1 sec.

MOTR=%00000000

Let OutPinsC = MOTR

Pause 1000

 

DO

 If pinB.7 = 0 then 'Motor On

  For index = 1 to Seq

    Read b0, MOTR ' Read EEprom, stock to W3 (MOTR)

    Let OutPinsC = MOTR'Send data to PortC

    Pause Period  'Pause ms (or 1/100 ms if Pauseus)

  Next

 'Else = Motor Off

 Endif

LOOP

 

'====================================================================

 

 

 

 

 

xx

     x

  xxx

 

 

 

 http://extremetracking.com/open?login=rglalpmn

  

 

 
[ Electronique ]
Copyright © Roger LEGAT - 2008 - Tous Droits réservés - (Thds V2)