Comment câbler un pilote de moteur pas à pas sur un Arduino

D

Daniel Zhang

Dernière mise à jour le Aug 17, 2026

Suivez ces étapes pour connecter un pilote de moteur pas à pas à un Arduino.

Étapes de câblage

  1. 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+.
  2. Connectez les broches PUL− et DIR− du pilote à la broche GND de l'Arduino afin d'établir une masse commune.
  3. 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).
  4. 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 boucles for qui 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 fonctions digitalWrite() et delayMicroseconds() génèrent ensemble le train d'impulsions et contrôlent la vitesse de rotation.
  • Un appel delay(1000) après chaque boucle for met le programme en pause pendant 1 seconde avant d'inverser le sens de rotation.