BTS7960电机驱动器是一个强大的H桥模块,能够处理高电流,使其非常适合控制机器人和自动化项目中的直流电动机。在本教程中,您将学习如何使用Raspberry Pi连接和控制BTS7960以驱动电动机。
你需要什么
- 覆盆子pi (任何具有GPIO功能的模型,例如PI 3,PI 4)
- BTS7960电机驱动器模块
- 直流电动机 (适合您的项目)
- 外部电源 (匹配电动机的电压和当前要求)
- 面包板和跳线电线
步骤1:了解BTS7960电动机驱动器
BTS7960模块包括两个高功率的半支架,能够驱动最高43A的电动机。它的特征:
- PWM输入引脚用于速度控制
- 方向控制销
- 过电流和热保护
引脚
别针 | 描述 |
---|---|
VCC | 5V逻辑功率输入 |
gnd | 地面 |
RPWM | PWM投入到远期运动 |
LPWM | PWM输入以进行反向运动 |
R_en | 启用PIN进行正向运动 |
l_en | 启用针对反向运动的引脚 |
电机+(M+) | 运动正末端 |
电机 - (m-) | 电机负端子 |
vin | 外电动电源 |
GND(Power) | 电动电源的地面 |
步骤2:将BTS7960接线到Raspberry Pi
连接
BTS7960针 | 覆盆子Pi Pin |
---|---|
VCC | 5V |
gnd | gnd |
RPWM | GPIO18(PWM频道0) |
LPWM | GPIO19(PWM频道1) |
R_en | GPIO23 |
l_en | GPIO24 |
电机和电源连接
- 将电机端子连接到 电机+(M+) 和 电机 - (m-) 别针。
- 将外部电源的正终端连接到 vin.
- 将外部电源的地面连接到 GND(Power) 别针。
笔记: 确保外部电源与电动机的电压和当前需求相匹配。
步骤3:在Raspberry Pi上启用PWM
为了控制运动速度,您将使用PWM(脉冲宽度调制)。 Raspberry Pi Gpio Pins 18和19支持硬件PWM。
通过Raspberry Pi配置启用PWM
- 打开终端并运行:
sudo raspi-config
- 导航到 接口选项> P5:I2C,并启用i2c。
- 保存并重新启动Raspberry Pi:
sudo reboot
步骤4:编写Python代码以控制电动机
安装 RPi.GPIO
库控制GPIO引脚(如果尚未安装):
pip install RPi.GPIO
示例Python代码
此示例演示了如何使用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()
步骤5:测试您的设置
- 连接电动机和电源。
- 运行Python脚本:
python3 bts7960_control.py
- 观察编程的电动机更换速度和方向。
故障排除
-
电动机不运行:
- 检查接线连接。
- 验证外部电源。
-
PWM不起作用:
- 确保为PWM配置GPIO18和GPIO19。
- 检查脚本中的占空比值。
-
过热模块:
- 确保电动机的当前平局不会超过BTS7960的评级。
BTS7960与Raspberry Pi的应用
- 控制机器人技术中的高电流直流电动机
- 建造自动车辆或机器人
- 为工业应用创建电动系统
- 开发遥控系统
结论
BTS7960电机驱动器是驾驶高电动机的强大而有效的解决方案。结合Raspberry Pi的GPIO功能,它为机器人技术和自动化项目打开了许多可能性。通过遵循本指南,您可以设置并控制BTS7960以创建强大的电动系统。尝试不同的PWM频率和值班周期,以优化您的特定应用程序的性能!