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);
}
}