Cómo controlar un motor paso a paso con una Raspberry Pi

D

Daniel Zhang

Última actualización el Aug 17, 2026

  1. Introducción

La Raspberry Pi es un popular ordenador de placa única ampliamente utilizado en proyectos de aficionados e industriales. Es esencialmente un pequeño ordenador del tamaño de una tarjeta de crédito. Se utiliza ampliamente en diversos proyectos, incluido el control de motores paso a paso, una tarea habitual en aplicaciones de control de movimiento. En este artículo aprenderá a utilizar el lenguaje de programación Python y la biblioteca RPi.GPIO para controlar un motor paso a paso, junto con las instrucciones de cableado correspondientes.

  1. Materiales necesarios
  1. Raspberry Pi (se recomienda Raspberry Pi 3B+ o superior)
  2. Motor paso a paso (p. ej., NEMA 17)
  3. Módulo controlador de motor paso a paso (p. ej., DRV8825 o A4988)
  4. Cables puente (conectores DuPont)
  5. Adaptador de alimentación de 12 V CC
  6. Placa de pruebas (opcional)
  7. Condensador de desacoplamiento (p. ej., electrolítico de 100 µF)
  1. Instrucciones de cableado

Nota de seguridad: Conecte siempre el cableado del motor y del controlador antes de aplicar alimentación. Verifique todas las conexiones para evitar dañar la Raspberry Pi o el módulo controlador.

  1. Conecte los cuatro cables del motor paso a paso a los pines A1, A2, B1 y B2 del módulo controlador del motor.
  2. Conecte el terminal positivo de la fuente de alimentación de 12 V al pin VMOT del módulo controlador y el terminal negativo al pin GND. Coloque un condensador de desacoplamiento (p. ej., electrolítico de 100 µF) entre VMOT y GND, lo más cerca posible del módulo controlador, para suprimir los picos de tensión.
  3. Conecte el pin de alimentación de 5 V (pin físico 2 o pin 4) de la Raspberry Pi al pin VCC del módulo controlador, y conecte un pin GND (p. ej., el pin físico 6) al pin GND del módulo controlador.
  4. Conecte los siguientes pines GPIO BCM de la Raspberry Pi a los pines correspondientes del módulo controlador:
GPIO de la Raspberry Pi (BCM) Pin físico Pin del módulo controlador
GPIO 17 Pin 11 DIR
GPIO 18 Pin 12 STEP
GPIO 27 Pin 13 MS1
GPIO 22 Pin 15 MS2
GPIO 23 Pin 16 ENABLE

Consejo: El pin ENABLE de la mayoría de los módulos A4988/DRV8825 es activo en bajo. Al ponerlo en LOW se habilita la salida del controlador.

  1. Implementación del código Python

Primero, instale la biblioteca RPi.GPIO. Introduzca los siguientes comandos en la terminal:

sudo apt-get update
sudo apt-get install python3-rpi.gpio

A continuación, cree un archivo Python llamado stepper_motor.py e introduzca el siguiente código:

import time
import RPi.GPIO as GPIO

# Definir pines (numeración BCM)
DIR = 17
STEP = 18
MS1 = 27
MS2 = 22
ENABLE = 23

# Configurar modo GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.setup(MS1, GPIO.OUT)
GPIO.setup(MS2, GPIO.OUT)
GPIO.setup(ENABLE, GPIO.OUT)

# Habilitar controlador y establecer dirección
GPIO.output(ENABLE, GPIO.LOW)   # Habilitar controlador (activo en bajo)
GPIO.output(DIR, GPIO.HIGH)     # Sentido horario

# Establecer modo de micropasos según el modelo del controlador (p. ej., A4988)
GPIO.output(MS1, GPIO.HIGH)     # Paso 1/4
GPIO.output(MS2, GPIO.LOW)

# Controlar la rotación del motor
steps = 200
delay = 0.001  # Retardo más corto para mayor velocidad

for _ in range(steps):
    GPIO.output(STEP, GPIO.HIGH)
    time.sleep(delay)
    GPIO.output(STEP, GPIO.LOW)
    time.sleep(delay)

# Limpiar GPIO
GPIO.cleanup()

Finalmente, guarde el archivo y ejecútelo en la terminal:

python3 stepper_motor.py
  1. Resumen

Este artículo ha presentado cómo utilizar una Raspberry Pi para controlar un motor paso a paso, incluyendo las instrucciones de cableado y el código Python con la biblioteca RPi.GPIO. Puede lograr fácilmente el control del motor siguiendo estos pasos. Ajuste los parámetros del código (como el número de pasos, el retardo y la configuración de micropasos) según los requisitos de su proyecto.