Moteur pas à pas Arduino l293d
L’un des principaux objectifs de la robotique est de faire bouger les choses par elles-mêmes. Pour faire bouger un robot, on utilise des moteurs électriques tels que les moteurs pas à pas, notamment lorsque la précision est requise avec une commande en boucle ouverte.
Dans ce tutoriel, nous examinons l’utilisation de circuits intégrés pour la commande de moteurs pas à pas. Pour vous simplifier la vie, il existe des shields qui intègrent ces ICs et vous permettent de piloter plusieurs moteurs (Motor Shield V1 et Motor Shield V2). Il existe également des contrôleurs de moteurs pas à pas pour des fonctions et des performances plus avancées, tels que le A4988 ou les TMC qui sont souvent utilisés dans les CNC.
Les pas à pas ont plusieurs phases qui, si elles sont activées avec la bonne séquence d’impulsions, peuvent tourner en pas discrets. Comme la séquence est connue pour se déplacer pas à pas, la position du rotor peut être gardée en mémoire et donc commander avec précision le moteur sans capteur.
Les steppers nécessitent une alimentation de 3V, 5V ou plus. L’alimentation externe doit être privilégiée, surtout si le moteur nécessite plus de 5V. Dans ce cas, le stepper peut être alimenté par la broche 5V de la carte et l’Arduino peut être alimenté par le câble USB.
Code arduino étape par étape
En fonction des dents du rotor, vous pouvez faire plus ou moins de pas dans le virage. Si vous avez plus de dents, il faudra plus de pas pour effectuer un tour, mais les pas seront plus courts, et le moteur sera donc plus précis. Si vous avez moins de dents, les pas seront des sauts plus nets, sans autant de précision. Par conséquent, les pas qu’un moteur pas à pas devra effectuer pour effectuer un tour dépendront des pas angulaires.
Ces pas angulaires sont standardisés, bien que vous puissiez trouver certains moteurs qui ont des pas non standard. Les angles sont généralement les suivants : 1,8º, 5,625º, 7,5º, 11,25º, 18º, 45º et 90º. Pour calculer le nombre de pas dont un moteur pas à pas a besoin pour effectuer un tour complet (360º), il suffit de diviser. Par exemple, si vous avez un moteur pas à pas à 45º, vous aurez 8 étapes (360/45=8).
Dans les deux cas, le fonctionnement est le même : polariser les bobines pour attirer le rotor à l’endroit où l’on souhaite positionner l’arbre. Si vous voulez le garder dans une position, vous devrez maintenir la polarisation pour cette position et c’est tout. Et si vous voulez qu’il avance, vous polarisez l’aimant suivant et il fera un nouveau pas, et ainsi de suite…
Contrôle d’un moteur pas à pas avec arduino
Comme on peut le voir, le programme est assez simple, il suffit de modifier la séquence d’alimentation des bobines du moteur, comme expliqué dans le tutorial, en donnant un temps (mSecStep) entre chaque séquence pour que la démagnétisation et la magnétisation des pôles correspondants aient lieu, en faisant varier ce temps on fait varier la vitesse du moteur ; si on utilise un moteur différent de celui référencé, il faudra vérifier la valeur minimale et maximale de ce paramètre en le testant, dans notre cas elle se situe entre 750 et 2350 environ.
Comme on peut le voir dans la boucle loop(), ce que fait le programme, c’est que le moteur fait un tour complet dans une direction et un autre dans la direction opposée, en continu. Notez que le moteur fait 0,9 degré par pas, il effectuera donc un tour en 360/0,9=400 pas.
Les broches mA, mB, mC et mD vont à la carte Arduino aux broches 3, 4, 5 et 6 respectivement. Sur ce moteur particulier, l’alimentation 12V peut être remplacée par une alimentation 9V si le moteur fonctionne au ralenti ou sous faible charge.
Contrôler un moteur pas à pas avec un potentiomètre arduino
}Explication du code : Nous commençons par inclure la bibliothèque AccelStepper nouvellement installée.#include <AccelStepper.h>Nous définissons les broches Arduino auxquelles sont connectées les broches STEP et DIR de l’A4988. Nous définissons également le type de moteur (motorInterfaceType) à 1. (1 signifie un pilote pas à pas externe avec des broches de pas et de direction) // Nous définissons les connexions de broches.
Explication du code : Le sketch commence par l’inclusion de la bibliothèque Arduino Stepper. La bibliothèque stepper est fournie avec l’IDE Arduino et est responsable du séquençage des impulsions que nous enverrons à notre moteur stepper.//Include Arduino Stepper library
const int stepsPerRevolution = 200;Ensuite, nous créons une instance de la bibliothèque stepper. Il prend en paramètre les pas par tour du moteur et les connexions des broches de l’Arduino.// Créez une instance de la bibliothèque Stepper.
Le A4988 est un pilote micropas pour contrôler les moteurs pas à pas bipolaires qui a un traducteur intégré pour faciliter l’opération. Cela signifie que nous pouvons contrôler le moteur pas à pas avec seulement 2 broches de notre pilote, l’une pour contrôler la direction de la rotation et l’autre pour contrôler les pas.