L'essentiel
Ce qui est dit dans cette page est l'essentiel à retenir. C'est suffisant la plupart du temps, et cela couvre 90% des besoins. C'est une simplification, tout ce qui est dit dans cette page est donc vrai à 90% et il y a des exceptions non signalées.
Il n'est pas nécessaire de comprendre comment fonctionne un moteur pas à pas pour l'utiliser et même pour écrire une bibliothèque performante. Dans un premier temps, je conseille un 28BYJ-48 + ULN2003 si on n'a pas besoin de vitesse (0,5tr/s max) et un 17HS4401 + A4988 si on a besoin d'un peu plus de vitesse ou de couple. En gros c'est comme si je conseille une trottinette pour les petits déplacements et une "Simca 1000 Peugeot" pour les grands. C'est une bonne base pour commencer. Je déconseille les moteur 5V et 12V en dehors du 28BYJ-48.
Un moteur pas à pas permet principalement de se positionner à un angle déterminé, et de garder sa position. On peut bien sûr le faire tourner en continu, et la vitesse est parfaitement synchrone avec la commande.
On a principalement 3 catégories de moteurs par ordre de performances:
- Les moteurs unipolaires, avec 5 ou 6 fils, sont souvent pilotés en tension avec un ULN2003. Avec un 28BYJ-48 5V on doit utiliser
une alimentation 5V ou 6V, avec un 28BYJ-48 12V on doit utiliser une alimentation 12V.
- Les moteurs bipolaires 5V ou 12V qui se commandent en tension sont commandés par un pont (ou deux demi-pont), par exemple
le L293D ou le TB6612; les circuits de puissance peuvent alors piloter soit deux moteurs CC soit un pas à pas. On peut aussi utiliser des
drivers (par exemple A4988) mais on ne poura pas profiter facilement des micro-pas.
- les moteurs bipolaires commandés en courant (en général la tension n'est pas donnée ou elle est inférieur à 4V), par exemple le
17HS4401. Ils se pilotent avec des driver spécifiques pour ce type de moteur, par exemple le A4988, le TB6600, le DRV8825. La tension
d'alimentation du driver peut être de 12V, de 24, voir même 36V, indépendamment de la tension du moteur. Avec ces drivers il FAUT régler
le courant de la commande, le maximum étant égal à 1,4 fois le courant nominal par enroulement (par exemple 2,4A pour un 17HS4401 donné
pour 1,7A).
La bibliothèque Stepper fournie avec l'IDE est adaptée pour commander des moteurs via un ULN2003 (premier type), un TB6612 ou L293 (deuxième type).
Tout n'est pas complètement cloisonné, on peut très bien piloter un 28BYJ-48 12V non modifié avec un A4988, avec la bibliothèque Stepper. Mais pour des achats, il vaut mieux associer le bon triplet (moteur, pilote, bibliothèque).
NEMA est une norme; un NEMA17 peut être n'importe lequel des 3 types (voir même un autre composant), et peut avoir un couple statique aussi bien de 11cm.N ou de 79cm.N . On ne doit pas dire "j'ai un Nema17" mais J'ai un 17HS4401"
Le moteur va suivre les ordres donnés sans avoir besoin d'utiliser un capteur de position. Si le couple est suffisant, il tournera, si le couple est insuffisant, il perd des pas et cela se voit énormément. Une caractéristique très importante est le nombre de pas par tour qui est le nombre de positions natives possibles. Parmi les moteurs les plus courants les 28BYJ-48 ont 2048 pas par tour et les hybrides 200 pas par tour. Les 28BYJ-48 sont des moto-réducteurs, c'est en fait un moteur 32 pas par tour suivi d'un réducteur de vitesse par 64. Il existe des moteurs qui leur ressemblent mais qui n'ont pas le même nombre de pas.
Il y a plusieurs modes de fonctionnement. En mode pas entiers on a 2048 ou 200 pas par tour. En mode demi-pas, on va doubler le nombre de pas apparents. Pour les moteurs pilotés par un driver, on peut souvent avoir des micros-pas. Cela divise le pas en 4, 8, 16, 32, 1000... Si on est en 32 micro-pas, il faut donc envoyer 32 ordres d'avancer élémentaires pour avancer d'un pas.
Pour certaines vitesses, le moteur peut avoir des oscillations et perd alors des pas (voir s'arrête ou va dans l'autre sens). En passant en micro-pas ce phénomène apparaît moins. De plus les micros-pas diminuent le bruit du moteur. C'est pour cela que je conseille fortement d'acheter un moteur commandé en courant et de travailler en 10 à 16 micro-pas.
Si on ne demande pas de couple, le moteur s'aligne (les pôles se mettent en face). Plus on demande de couple, plus le moteur se décale par rapport à sa position "neutre", et on peut avoir jusqu'à un pas entier de décalage. Cela fait une erreur de positionnement supplémentaire. En passant en micro-pas, on n'augmente pas la précision, juste la résolution.
On a facilement la puissance du moteur à l'arrêt, la résistance d'un enroulement est donné ainsi que soit la tension soit le courant. Comme il y a deux enroulements qui peuvent être alimenté en même temps, la puissance est P=2.U.I ou P=2.R.I2. Pour les moteurs pilotés en tension, je n'ai pas vu la puissance augmenter si la vitesse ou la charge augmente. Pour les moteurs pilotés en courant, je choisirai une puissance d'alimentation environ 3 fois la puissance calculée à l'arrêt. Par exemple pour un 17HS4401 donné pour 1,7A et 1,5Ω, on choisira une alimentation de 3x2x1,5x1,72 soit 26W (3 fois 2 enroulements fois UI). On choisira donc une alimentation 24V/1A.
Soit le moteur tourne, soit il loupe des pas (forcément par paquets de 4!). Si le moteur tourne correctement, cela ne sert à rien d'augmenter la tension ou le courant. On peut même chercher à diminuer le courant au maximum qui assure le bon fonctionnement. Pour 10°C en plus, la durée de vie est divisée par 2. Au point nominal, un pas à pas peut avoir une température extérieure de l'ordre de 60°C. Le couple maximal est proportionnel au courant. A haute vitesse, le courant n'a plus le temps de s'établir et le couple diminue.
La vitesse maximale de rotation est de l'ordre de 3000tr/mn (50tr/s). Pour un 28BYJ-48 qui a un rapport de réduction de 64, on ne peut donc guère dépasser 1tr/s en sortie. La vitesse maximale de rotation départ arrêté est bien plus faible. Pour atteindre les vitesses maximales, il faut que la commande donne une rampe d'accélération. Plus la vitesse est élevée, plus le couple utile diminue.
Les bibliothèques les plus utilisées sont Stepper qui est fourni avec l'IDE (plutôt pour bipolaire) et AccelStepper. Bien entendu, je conseille plutôt QuickStep, que j'ai écrit. On peut aussi piloter un pas à pas sans utiliser de bibliothèque, ce n'est pas très compliqué.