El controlador de motor BTS7960 es un potente módulo H-Bridge capaz de manejar corrientes altas, lo que lo hace ideal para controlar los motores DC en robótica y proyectos de automatización. En este tutorial, aprenderá a conectar y controlar el BTS7960 con una Raspberry Pi para conducir un motor.
Lo que necesitarás
- Frambuesa pi (Cualquier modelo con capacidades de GPIO, por ejemplo, PI 3, PI 4)
- Módulo de controlador de motor BTS7960
- Motor DC (Adecuado para su proyecto)
- Fuente de alimentación externa (coincidir con los requisitos de voltaje y corriente de su motor)
- Cables de placa y jersey
Paso 1: Comprender el controlador de motor BTS7960
El módulo BTS7960 incluye dos medios puentes de alta potencia capaces de conducir motores con corrientes de hasta 43a. Cuenta:
- Pins de entrada PWM para el control de velocidad
- Pins de control de dirección
- Protección contra sobrecorriente y térmica
Pinout
Alfiler | Descripción |
---|---|
VCC | Entrada de potencia lógica de 5V |
Gnd | Suelo |
RPWM | Entrada PWM para el movimiento hacia adelante |
LPWM | Entrada PWM para movimiento inverso |
R_en | Habilitar PIN para el movimiento hacia adelante |
L_en | Habilitar PIN para movimiento inverso |
Motor+ (M+) | Terminal positivo del motor |
Motor- (M-) | Terminal negativo del motor |
Empuje | Fuente de alimentación del motor externo |
GND (poder) | Tierra para la fuente de alimentación del motor |
Paso 2: Cableado el BTS7960 al Raspberry Pi
Conexión
Bts7960 pin | Pin de frambuesa Pi |
---|---|
VCC | 5V |
Gnd | Gnd |
RPWM | GPIO18 (canal PWM 0) |
LPWM | GPIO19 (canal 1 de PWM) |
R_en | GPIO23 |
L_en | GPIO24 |
Conexiones del motor y la fuente de alimentación
- Conecte los terminales del motor al Motor+ (M+) y Motor- (M-) patas.
- Conecte el terminal positivo de la fuente de alimentación externa a Empuje.
- Conecte el suelo de la fuente de alimentación externa al GND (poder) alfiler.
Nota: Asegúrese de que la fuente de alimentación externa coincida con los requisitos de voltaje y corriente de su motor.
Paso 3: habilitar PWM en la Raspberry Pi
Para controlar la velocidad del motor, usará PWM (modulación de ancho de pulso). Raspberry Pi GPIO Pins 18 y 19 Soporte de hardware PWM.
Habilitar PWM a través de la configuración de Raspberry Pi
- Abra la terminal y ejecute:
sudo raspi-config
- Navegar por Opciones de interfaz> P5: I2Cy habilitar i2c.
- Guarde y reinicie la Raspberry PI:
sudo reboot
Paso 4: Escribir código Python para controlar el motor
Instalar el RPi.GPIO
Biblioteca para controlar los pines GPIO si aún no está instalado:
pip install RPi.GPIO
Ejemplo de código Python
Este ejemplo demuestra cómo controlar la velocidad y la dirección del motor utilizando el BTS7960.
import RPi.GPIO as GPIO
import time
# Pin Definitions
RPWM_PIN = 18
LPWM_PIN = 19
REN_PIN = 23
LEN_PIN = 24
# GPIO Setup
GPIO.setmode(GPIO.BCM)
GPIO.setup(RPWM_PIN, GPIO.OUT)
GPIO.setup(LPWM_PIN, GPIO.OUT)
GPIO.setup(REN_PIN, GPIO.OUT)
GPIO.setup(LEN_PIN, GPIO.OUT)
# PWM Setup
frequency = 1000 # PWM frequency in Hz
rpwm = GPIO.PWM(RPWM_PIN, frequency)
lpwm = GPIO.PWM(LPWM_PIN, frequency)
# Start PWM with 0% duty cycle (off)
rpwm.start(0)
lpwm.start(0)
try:
while True:
# Enable Forward Motion
GPIO.output(REN_PIN, GPIO.HIGH)
GPIO.output(LEN_PIN, GPIO.LOW)
# Set forward speed (50% duty cycle)
rpwm.ChangeDutyCycle(50)
lpwm.ChangeDutyCycle(0)
time.sleep(2)
# Enable Reverse Motion
GPIO.output(REN_PIN, GPIO.LOW)
GPIO.output(LEN_PIN, GPIO.HIGH)
# Set reverse speed (30% duty cycle)
rpwm.ChangeDutyCycle(0)
lpwm.ChangeDutyCycle(30)
time.sleep(2)
except KeyboardInterrupt:
print("Stopping motor...")
finally:
rpwm.stop()
lpwm.stop()
GPIO.cleanup()
Paso 5: Prueba de su configuración
- Conecte el motor y la fuente de alimentación.
- Ejecute el guión de Python:
python3 bts7960_control.py
- Observe la velocidad y la dirección cambiantes del motor según lo programado.
Solución de problemas
-
El motor no funciona:
- Verifique las conexiones de cableado.
- Verifique la fuente de alimentación externa.
-
PWM no funciona:
- Asegúrese de que GPIO18 y GPIO19 estén configurados para PWM.
- Verifique los valores del ciclo de trabajo en el script.
-
Módulo de sobrecalentamiento:
- Asegúrese de que el sorteo de corriente del motor no exceda la calificación de BTS7960.
Aplicaciones del BTS7960 con Raspberry Pi
- Control de motores DC de alta corriente en robótica
- Edificio de vehículos o robots automatizados
- Creación de sistemas motorizados para aplicaciones industriales
- Desarrollo de sistemas controlados a distancia
Conclusión
El conductor del motor BTS7960 es una solución robusta y eficiente para conducir motores de alta corriente. Combinado con las capacidades GPIO de Raspberry Pi, abre numerosas posibilidades para proyectos de robótica y automatización. Siguiendo esta guía, puede configurar y controlar el BTS7960 para crear potentes sistemas motorizados. ¡Experimente con diferentes frecuencias de PWM y ciclos de trabajo para optimizar el rendimiento para su aplicación específica!