Como Ligar um Driver de Motor de Passo a um Arduino

D

Daniel Zhang

Última atualização em Aug 17, 2026

Siga estes passos para ligar um driver de motor de passo a um Arduino.

Passos de Ligação

  1. Ligue os pinos PUL+ e DIR+ do driver aos pinos digitais do Arduino. Por exemplo, use o Pino 9 para PUL+ e o Pino 8 para DIR+.
  2. Ligue os pinos PUL− e DIR− do driver ao pino GND do Arduino para estabelecer um terra comum.
  3. Escreva um programa no seu computador que atribua o Pino 9 como saída de pulso (PUL) e o Pino 8 como saída de direção (DIR).
  4. Carregue o programa no Arduino e alimente o Arduino com uma fonte de alimentação de 5 V.

Importante: Certifique-se de que o Arduino e o driver de motor de passo partilham um terra comum (GND). Verifique se todos os níveis de tensão são compatíveis antes de ligar o sistema.

Esquema Elétrico

O esquema abaixo mostra a ligação básica entre o Arduino, o driver de motor de passo, a fonte de alimentação e o motor de passo.

Código de Exemplo

int x;

void setup() {
  pinMode(9, OUTPUT); // Pino 9 como PUL (pulso)
  pinMode(8, OUTPUT); // Pino 8 como DIR (direção)
}

void loop() {
  digitalWrite(8, HIGH); // Define direção: HIGH
  for (x = 0; x < 400; x++) { // 400 passos (uma rotação com configuração de 400 pulsos/rotação)
    digitalWrite(9, HIGH);
    delayMicroseconds(500); // Controla a velocidade de rotação
    digitalWrite(9, LOW);
    delayMicroseconds(500); // Controla a velocidade de rotação
  }
  delay(1000); // Pausa de 1 segundo

  digitalWrite(8, LOW); // Define direção: LOW
  for (x = 0; x < 400; x++) {
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
  }
  delay(1000); // Pausa de 1 segundo
}

Explicação do Código

  • A função pinMode() configura o Pino 9 como saída de pulso (PUL) e o Pino 8 como saída de direção (DIR).
  • A função loop() contém dois ciclos for, cada um comandando 400 passos. O primeiro ciclo define DIR como HIGH e gira o motor num sentido; o segundo ciclo define DIR como LOW e gira-o no sentido oposto. As funções digitalWrite() e delayMicroseconds() geram em conjunto o trem de pulsos e controlam a velocidade de rotação.
  • Uma chamada delay(1000) após cada ciclo for pausa o programa durante 1 segundo antes de inverter a direção.