Utilisation d'un moteur pas à pas (théorie)
Aller à la navigation
Aller à la recherche
Notes
- Notions moteur pas à pas
- Notions pont en H
Branchement
Le matériel nécessaire est le suivant :
- Un moteur pas à pas 5V (dans cet exemple, ce modèle est utilisé.
- Un circuit double pont en H référence L293D
- Arduino Uno, breadboard, fils…
Pour les branchements, suivre le schéma ci-contre.
- Sont reliés à la broche 5V de l'Arduino
- Broche « +V » du L293D (n° 16)
- Broche « +Vmotor » du L293D (n° 8)
- Broche « Enable 1 » du L293D (n° 1)
- Broche « Enable 2 » du L293D (n° 9)
- Broche GND de l'Arduino relié à une des broches « 0V » du L293D (n° 4, 5, 12 ou 13)
- Broche 9 de l'Arduino à la broche « In 4 » de L293D (n° 15)
- Broche 10 de l'Arduino à la broche « In 3 » de L293D (n° 10)
- Broche 11 de l'Arduino à la broche « In 2 » de L293D (n° 7)
- Broche 12 de l'Arduino à la broche « In 1 » de L293D (n° 2)
- Broche « Out 1 » du L293D (n° 3) au fil bleu du moteur pas à pas
- Broche « Out 2 » du L293D (n° 6) au fil jaune du moteur pas à pas
- Broche « Out 3 » du L293D (n° 11) au fil rose du moteur pas à pas
- Broche « Out 4 » du L293D (n° 14) au fil orange du moteur pas à pas
- Le fil rouge du moteur pas à pas ne doit être relié à rien.
Code source
Le code source est repris de l'exemple de Adafruit
#include <Stepper.h> // On défini les broches utilisés pour contrôler le moteur pas à pas const byte in1Pin = 12; const byte in2Pin = 11; const byte in3Pin = 10; const byte in4Pin = 9; Stepper motor(513, in1Pin, in2Pin, in3Pin, in4Pin); // Déclaration du moteur pas à pas, avec en paramètres // le nombre de pas nécessaires pour un tour complet // du moteur, suivi des broches de contrôle // La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte void setup() { // On passe les broches de contrôle en mode sortie pinMode(in1Pin, OUTPUT); pinMode(in2Pin, OUTPUT); pinMode(in3Pin, OUTPUT); pinMode(in4Pin, OUTPUT); // On initialise le port série Serial.begin(9600); // On défini la vitesse de rotation du moteur, en nombre de tours par minute motor.setSpeed(10); } // La fonction loop est exécutée indéfiniment void loop() { // On lit le nombre saisi dans le moniteur série if (Serial.available()) { int steps = Serial.parseInt(); // On fait tourner le moteur du nombre de pas saisis. motor.step(steps); } }