Cómo cablear un controlador de motor paso a paso a un Arduino

D

Daniel Zhang

Última actualización el Aug 17, 2026

Siga estos pasos para conectar un controlador de motor paso a paso a un Arduino.

Pasos de cableado

  1. Conecte los pines PUL+ y DIR+ del controlador a pines digitales del Arduino. Por ejemplo, use el Pin 9 para PUL+ y el Pin 8 para DIR+.
  2. Conecte los pines PUL− y DIR− del controlador al pin GND del Arduino para establecer una masa común.
  3. Escriba un programa en su ordenador que asigne el Pin 9 como salida de pulso (PUL) y el Pin 8 como salida de dirección (DIR).
  4. Cargue el programa en el Arduino y alimente el Arduino mediante una fuente de alimentación de 5 V.

Importante: Asegúrese de que el Arduino y el controlador de motor paso a paso compartan una masa común (GND). Verifique que todos los niveles de tensión sean compatibles antes de encender el sistema.

Esquema

El esquema siguiente muestra el cableado básico entre el Arduino, el controlador de motor paso a paso, la fuente de alimentación y el motor paso a paso.

Código de ejemplo

int x;

void setup() {
  pinMode(9, OUTPUT); // Pin 9 como PUL (pulso)
  pinMode(8, OUTPUT); // Pin 8 como DIR (dirección)
}

void loop() {
  digitalWrite(8, HIGH); // Establecer dirección: HIGH
  for (x = 0; x < 400; x++) { // 400 pasos (una revolución con ajuste de 400 pulsos/rev)
    digitalWrite(9, HIGH);
    delayMicroseconds(500); // Controla la velocidad de rotación
    digitalWrite(9, LOW);
    delayMicroseconds(500); // Controla la velocidad de rotación
  }
  delay(1000); // Pausa de 1 segundo

  digitalWrite(8, LOW); // Establecer dirección: LOW
  for (x = 0; x < 400; x++) {
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
  }
  delay(1000); // Pausa de 1 segundo
}

Explicación del código

  • La función pinMode() configura el Pin 9 como salida de pulso (PUL) y el Pin 8 como salida de dirección (DIR).
  • La función loop() contiene dos bucles for, cada uno de los cuales comanda 400 pasos. El primer bucle establece DIR en HIGH y gira el motor en un sentido; el segundo bucle establece DIR en LOW y lo gira en sentido contrario. Las funciones digitalWrite() y delayMicroseconds() generan conjuntamente el tren de pulsos y controlan la velocidad de rotación.
  • Una llamada a delay(1000) después de cada bucle for pausa el programa durante 1 segundo antes de invertir la dirección.