将BTS7960与Raspberry Pi一起使用

Using the BTS7960 with the Raspberry Pi

BTS7960电机驱动器是一个强大的H桥模块,能够处理高电流,使其非常适合控制机器人和自动化项目中的直流电动机。在本教程中,您将学习如何使用Raspberry Pi连接和控制BTS7960以驱动电动机。


你需要什么

  1. 覆盆子pi (任何具有GPIO功能的模型,例如PI 3,PI 4)
  2. BTS7960电机驱动器模块
  3. 直流电动机 (适合您的项目)
  4. 外部电源 (匹配电动机的电压和当前要求)
  5. 面包板和跳线电线

步骤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

电机和电源连接

  1. 将电机端子连接到 电机+(M+)电机 - (m-) 别针。
  2. 将外部电源的正终端连接到 vin.
  3. 将外部电源的地面连接到 GND(Power) 别针。

笔记: 确保外部电源与电动机的电压和当前需求相匹配。


步骤3:在Raspberry Pi上启用PWM

为了控制运动速度,您将使用PWM(脉冲宽度调制)。 Raspberry Pi Gpio Pins 18和19支持硬件PWM。

通过Raspberry Pi配置启用PWM

  1. 打开终端并运行:
    sudo raspi-config
    
  2. 导航到 接口选项> P5:I2C,并启用i2c。
  3. 保存并重新启动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:测试您的设置

  1. 连接电动机和电源。
  2. 运行Python脚本:
    python3 bts7960_control.py
    
  3. 观察编程的电动机更换速度和方向。

故障排除

  1. 电动机不运行:

    • 检查接线连接。
    • 验证外部电源。
  2. PWM不起作用:

    • 确保为PWM配置GPIO18和GPIO19。
    • 检查脚本中的占空比值。
  3. 过热模块:

    • 确保电动机的当前平局不会超过BTS7960的评级。

BTS7960与Raspberry Pi的应用

  1. 控制机器人技术中的高电流直流电动机
  2. 建造自动车辆或机器人
  3. 为工业应用创建电动系统
  4. 开发遥控系统

结论

BTS7960电机驱动器是驾驶高电动机的强大而有效的解决方案。结合Raspberry Pi的GPIO功能,它为机器人技术和自动化项目打开了许多可能性。通过遵循本指南,您可以设置并控制BTS7960以创建强大的电动系统。尝试不同的PWM频率和值班周期,以优化您的特定应用程序的性能!

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.