Tuto  Moteur pas-a-pas

13/06/20

***Pour revenir à la page d’accueil** ICI

On trouve ces moteurs dans les disques durs, les imprimantes, les afficheurs(compte-tours...) des autos actuelles etc.

Leurs avantages :

-  maintien d’une position angulaire

-  vitesse de rotation très précise

-  angle de rotation très precis

-  couple pouvant être important

-  peu couteux

Les deux familles de moteurs pas à pas

"Unipolaire" car l’extrémité de chaque bobine à point milieu ( le 5 ème fil) est soit flottante soit au +.

Chaque enroulement est alimenté dans un seul sens du courant.

C’est ce type de moteur pas à pas qui sera décrit ici.

"Bipolaire" car les deux bobines simples(sans point milieu) sont alimentées dans les deux sens du courant selon la phase de la séquence.

Ce moteur nécessite une circuit de commande plus complexe, dit " pont en H", réalisable avec 4 transistors mais le plus souvent au moyen d’un circuit intégré spécialisé.

Pour un petit moteur comme le X25 de General Motors, avec 20mA un Arduino suffit en commande directe.

Voir cet article

Etude détaillée d’un moteur unipolaire

Ce moteur 28BYJ H48 5Vdc est un classique du genre.

On le pilote avec un Arduino, ou equivalent, sous 5 V, en interposant un étage d’amplification (Darlington X7 , ULN 2003A).

Le moteur possède une démultiplication mécanique de 64 au moyen d’engrenages en plastique.

L’ensemble moteur+ampli coûte moins de 2€.

L’arbre en sortie de diamètre 4 mm possède deux méplats.

Dans la suite on s’intéressera uniquement au rotor et stator du moteur, et non au train d’engrenages.

Le rotor est constitué d’un cylindre en plastique recouvert d’une ferrit présentant 8 paires de poles Nord/Sud soit 16 poles.

On compte les poles avec une aiguille aimantée.

Chaque pole mesure donc 360/16 = 22°5.

Le principe des moteurs pas à pas est d’alimenter à tour de rôle les enroulements du stator, générant ainsi un champs magnétique tournant qui entraîne le rotor.

Sur le schema les deux bobines du stator ont un point milieu (fil rouge), qui peut, au choix, être porté à +5 V ou mis à la masse.Dans la suite il sera à la masse.

Pour repérer la polarité Nord ou Sud générée par chaque demi-bobine, on les a alimenté une une sous 5v. Il suffit ensuite de presenter une boussole pour identifier le type de pole.

Chaque bobine excite le rotor via 8 dents métalliques implantées à 360 / 8 = 45°, chaque dent recouvrant 22°5, avec un espace de 22°5 entre entre deux dents.

On voit aussi sur la photo que les 8 dents d’une bobine sont décalées d’une demi-dent par rapport aux 8 dents de l’autre bobine.

Principe de fonctionnement

Une bobine est excitée (connectée au +5V) pendant un temps d’excitation tE (de l’ordre de quelques millisecondes en general).

Les 8 poles magnétiques ainsi générés attirent les 8 poles (inverses) du rotor les plus proches des dents de cette bobine.

Après tE, cette bobine peut être déconnectée du 5 V, et un autre enroulement est alimenté.

On vient d’exécuter UN PAS.

Par exemple, quand la bobine orange est excitée à +5V, pendant un temps d’activation tE, elle génère 8 poles Nord (AN) qui attirent les 8 poles Sud du rotor lui faisant à peu près face : le rotor tourne.

Puis la bobine jaune, excitée à +5V, pendant le temps tE, génère 8 poles Sud(BS) qui attirent les 8 poles Nord du rotor lui faisant à peu près face face.Le rotor tourne de nouveau.

Le déplacement du rotor à chaque pas correspond à une demi-dent soit 22°5/2 = 11°25.

Selon la sequence d’alimentation choisie et le temps d’excitation tE, on peut ajuster :

-  la vitesse de rotation

-  le sens de rotation

-  le couple

Les 3 modes d’alimentation les plus courants sont :

-  Wave

-  Full step

-  Half step

Modes WAVE et Full Step

-  Wave

C’est le plus intuitif : on excite une seule bobine à la fois, en alternance.

-  Full Step

A chaque pas les deux bobines sont excitées, la consommation donc le couple augmente.

Mode Half Step

-  On alterne entre une et deux bobines excitées, la vitesse est divisée par deux.

C’est le mode préconisé dans la notice de ce moteur.

Vitesse et sens de rotation

-  La vitesse est directement liée au temps d’excitation.

C’est la variable "tExcitation" dans le logiciel Mon_Stepper proposé ci dessous.

-  le sens de rotation s’inverse en inversant l’ordre des pas de la sequence

Par exemple, l’ ordre 1,2,3,4 dans le tableau Wave ci dessus devient 4,3,2,1.

Caracteristiques du moteur 28BYJ H48

Pas de 11°25 soit 360 / 11.25 = 32 pas par tour en mode Wave et Full Step.

64 pas par tour en mode Half Step.

La fréquence d’excitation maximale théorique est 100 Hz, soit tE = 1 0ms.

Pour un tour de moteur (Wave, Full Step) il faut donc au minimum 10 ms*32 = 320 ms, soit une vitesse maximale de 1/0.32 = 3.12 t/s ou 187 t/mn.

Après reduction mécanique de 64, l’arbre de sortie a donc une vitesse maxi de 187/60 = 3 t/mn.

Dans la pratique, j’ai pu pousser la fréquence d’excitation à 500 Hz (voir 600 Hz ) , ce qui donne 15 t/mn en sortie, sans garantie sur la durée de l’expérience...

Documentation et Logiciels

Documentation - 189.8 ko

Documentation

Ce logiciel pilote directement le moteur sans utiliser la librairie Stepper

Logiciel Mon_Stepper250218

Utilisation de la librairie Stepper de l’IDE Arduino

Celle ci comprend :

-  Stepper monStepper(pasParTour, 8, 9, 10, 11) ;

-  monStepper.setSpeed() ;

-  monStepper.step() ;

Exemple d’utilisation :

-  inclure la lib Stepper.h //Librairie dans tout IDE Arduino

-  Stepper monStepper(pasParTour, 8, 9, 10, 11) ; //On crée l’objet monStepper,

// nombre de pas par tour et les broches de l’Arduino

-  const int pasParTour = 2048 ;

//Moteur 28BY H 48, 8 dents, 11°25 par pas, soit 360/11.25 = 32pas/tour

//MAIS reduction mecanique de 64 donc il faut 32*64= 2048pas /tour d’axe externe

//La doc dit "freq max 100Hz"soit 10ms /pas mini, 20480ms/tour au plus vite : 20s/t = 3 tr/mn max

//En pratique, supporte 14t/mn grand maximum !

//OK via USB, 200mA

-  monStepper.setSpeed(3) ;//Impose 3t/mn

-  monStepper.step(2048) ;//Tourne de 2048 pas soit 1 tour

-  monStepper.step(-2048) ;//Tourne de 1 tour en sens inverse (signe -)

Et 2 exemples en provenance de l’IDE Arduino, paramétrés pour le moteur 28BYJ H48 .

Logiciel Stepper_1_tour_et_inverse_180218.
(

Logiciel Stepper_1_tour_pas_a_pas_180218

Un autre exemple :https://www.instructables.com/id/Ar...

Annexe : détail des modes Wave, Full Step et Half Step

Sur ces schémas les dents du stator sont les triangles de base 22°5, décalés de 11°25 pour les bobines A et B.

Le rotor est schématisé par les rectangles alternés Nord-Sud, qui se déplacent , dans ce mode, de 11°25 à chaque pas.


q