On trouve ces moteurs dans
les tableaux de bord des autos pour les afficheurs analogiques.
L'aiguille d'un compte-tours, d'un compteur kilométrique, d'un niveau
d'essence est activée par un tel moteur.
On reconnait leur présence au déplacement pleine échelle à la
mise du contact, puis retour au zero.
On les trouve sous différentes formes mais le plus populaire est le
X25/27 type 168 qui comporte une butée.
Noter que ce moteur a été conçu en Suisse par une filiale de Swatch.
Il comporte deux enroulements (1,2) et (3,4) que l'on connecte à 4
sorties digitales d'un Arduino
D10,11,12,13 par exemple.
C'est un moteur de type Lavet, inventeur Français qui l'a breveté en
1936.
Le petit rotor comporte 6 dents et la démultiplication totale est 180.
Le pas de base du rotor correspond à 1/3° de l'axe de sortie, soit
180/3 = 60° pour le rotor.
Il existe aussi un micropas, pour 1/12° de l'axe mais l'on ne s'en
occupera pas.
La roue de l'axe comporte un téton qui vient buter sur la zone en rouge
du couvercle, ce
qui délimite une zone active de l'aiguille entre 0 et 315°.
A 360° d'axe correspond 360X3 = 1080 pas.
A 315° d'axe correspond donc (1080/360)X315 = 945 pas.
Au démarrage, on renvoie l'axe à 0°,ce qui revient à faire tourner le
rotor de 945 pas.
Dans la plupart des cas l'axe étant déjà en butée, le rotor essaie
d'entrainer le pignon central.
Celui ci est donc conçu de façon astucieuse avec des dents souples
tolérant cette tentative d'entrainement.
******************Principe
de fonctionnement avec la bibliothèque SwitecX25*******************
Problème de remise à zéro résolu.
Olivier C. a trouvé cette solution, merci à lui.
En observant la classe SwitecX25
(https://github.com/clearwater/SwitecX25/blob/master/SwitecX25.cpp),
j'ai remarqué que la fonction "zero()" n'utilise pas la table
d'accélération, mais une simple boucle avec un délai constant
"RESET_STEP_MICROSEC". Cette valeur est par défaut de 800, ce qui est
légèrement trop rapide pour le moteur. En modifiant à 900, il n'y a
plus aucun décrochage du rotor. L'aiguille s'initialise au zéro à peine
plus lentement, ce qui n'est pas un souci.