Come collegare un driver per motore passo-passo ad Arduino

D

Daniel Zhang

Ultimo aggiornamento Aug 17, 2026

Segui questi passaggi per collegare un driver per motore passo-passo ad Arduino.

Passaggi di cablaggio

  1. Collega i pin PUL+ e DIR+ del driver ai pin digitali di Arduino. Ad esempio, usa il Pin 9 per PUL+ e il Pin 8 per DIR+.
  2. Collega i pin PUL− e DIR− del driver al pin GND di Arduino per stabilire una massa comune.
  3. Scrivi un programma sul tuo computer che assegni il Pin 9 come uscita impulso (PUL) e il Pin 8 come uscita direzione (DIR).
  4. Carica il programma su Arduino e alimenta Arduino tramite un alimentatore a 5 V.

Importante: assicurati che Arduino e il driver per motore passo-passo condividano una massa comune (GND). Verifica che tutti i livelli di tensione siano compatibili prima di alimentare il sistema.

Schema elettrico

Lo schema seguente mostra il cablaggio di base tra Arduino, il driver per motore passo-passo, l'alimentatore e il motore passo-passo.

Codice di esempio

int x;

void setup() {
  pinMode(9, OUTPUT); // Pin 9 come PUL (impulso)
  pinMode(8, OUTPUT); // Pin 8 come DIR (direzione)
}

void loop() {
  digitalWrite(8, HIGH); // Imposta direzione: HIGH
  for (x = 0; x < 400; x++) { // 400 passi (una rivoluzione con impostazione driver a 400 impulsi/giro)
    digitalWrite(9, HIGH);
    delayMicroseconds(500); // Controlla la velocità di rotazione
    digitalWrite(9, LOW);
    delayMicroseconds(500); // Controlla la velocità di rotazione
  }
  delay(1000); // Pausa di 1 secondo

  digitalWrite(8, LOW); // Imposta direzione: LOW
  for (x = 0; x < 400; x++) {
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
  }
  delay(1000); // Pausa di 1 secondo
}

Spiegazione del codice

  • La funzione pinMode() configura il Pin 9 come uscita impulso (PUL) e il Pin 8 come uscita direzione (DIR).
  • La funzione loop() contiene due cicli for che comandano ciascuno 400 passi. Il primo ciclo imposta DIR su HIGH e ruota il motore in una direzione; il secondo ciclo imposta DIR su LOW e lo ruota nella direzione opposta. Le funzioni digitalWrite() e delayMicroseconds() generano insieme il treno di impulsi e controllano la velocità di rotazione.
  • Una chiamata delay(1000) dopo ogni ciclo for mette in pausa il programma per 1 secondo prima di invertire la direzione.