- 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.
- Materiales necesarios
- Raspberry Pi (se recomienda Raspberry Pi 3B+ o superior)
- Motor paso a paso (p. ej., NEMA 17)
- Módulo controlador de motor paso a paso (p. ej., DRV8825 o A4988)
- Cables puente (conectores DuPont)
- Adaptador de alimentación de 12 V CC
- Placa de pruebas (opcional)
- Condensador de desacoplamiento (p. ej., electrolítico de 100 µF)
- 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.
- Conecte los cuatro cables del motor paso a paso a los pines A1, A2, B1 y B2 del módulo controlador del motor.
- 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.
- 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.
- 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.
- 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
- 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.