Suivez ces étapes pour connecter un pilote de moteur pas à pas à un Arduino.
Étapes de câblage
- Connectez les broches PUL+ et DIR+ du pilote aux broches numériques de l'Arduino. Par exemple, utilisez la broche Pin 9 pour PUL+ et la broche Pin 8 pour DIR+.
- Connectez les broches PUL− et DIR− du pilote à la broche GND de l'Arduino afin d'établir une masse commune.
- Rédigez un programme sur votre ordinateur qui attribue la broche Pin 9 comme sortie d'impulsion (PUL) et la broche Pin 8 comme sortie de direction (DIR).
- Téléversez le programme sur l'Arduino et alimentez l'Arduino via une alimentation 5 V.
Important : Assurez-vous que l'Arduino et le pilote de moteur pas à pas partagent une masse commune (GND). Vérifiez que tous les niveaux de tension sont compatibles avant de mettre le système sous tension.
Schéma
Le schéma ci-dessous illustre le câblage de base entre l'Arduino, le pilote de moteur pas à pas, l'alimentation et le moteur pas à pas.

Exemple de code
int x;
void setup() {
pinMode(9, OUTPUT); // Pin 9 as PUL (pulse)
pinMode(8, OUTPUT); // Pin 8 as DIR (direction)
}
void loop() {
digitalWrite(8, HIGH); // Set direction: HIGH
for (x = 0; x < 400; x++) { // 400 steps (one revolution at 400 pulses/rev driver setting)
digitalWrite(9, HIGH);
delayMicroseconds(500); // Controls rotation speed
digitalWrite(9, LOW);
delayMicroseconds(500); // Controls rotation speed
}
delay(1000); // Pause for 1 second
digitalWrite(8, LOW); // Set direction: LOW
for (x = 0; x < 400; x++) {
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
}
delay(1000); // Pause for 1 second
}
Explication du code
- La fonction
pinMode()configure la broche Pin 9 comme sortie d'impulsion (PUL) et la broche Pin 8 comme sortie de direction (DIR). - La fonction
loop()contient deux bouclesforqui commandent chacune 400 pas. La première boucle place DIR à HIGH et fait tourner le moteur dans un sens ; la seconde boucle place DIR à LOW et le fait tourner dans le sens inverse. Les fonctionsdigitalWrite()etdelayMicroseconds()génèrent ensemble le train d'impulsions et contrôlent la vitesse de rotation. - Un appel
delay(1000)après chaque boucleformet le programme en pause pendant 1 seconde avant d'inverser le sens de rotation.