***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
Chaque enroulement est alimenté dans un seul sens du courant.
C’est ce type de moteur pas à pas qui sera décrit ici.
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.
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.
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.
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.
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
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.
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.
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.
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...
Ce logiciel pilote directement le moteur sans utiliser la librairie Stepper
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 .
Un autre exemple :https://www.instructables.com/id/Ar...
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.