如何使用Arduino使用BTS7960电机驱动器

How to Use the BTS7960 Motor Driver with Arduino

BTS7960是一个强大的H桥电动机驱动器模块,可以处理高电流和电压,非常适合驾驶大型直流电动机。它提供PWM控制,过电流保护和有效的散热,非常适合机器人,RC汽车和其他高功率电动机应用。本教程将指导您通过将BTS7960与Arduino接口。

你需要什么

  1. BTS7960电机驱动器模块
  2. Arduino董事会(例如Uno,Mega,Nano)
  3. 直流电动机
  4. 电动机的外部电源(与电动机的电压匹配)
  5. 跳线
  6. 安装了带有Arduino IDE的计算机

步骤1:了解BTS7960针

BTS7960模块具有以下关键引脚:

别针 功能
VCC 逻辑电源(5V)
gnd 地面
R_en 右电动机启用(主动高)
l_en 左电动机启用(主动高)
R_PWM 右电机PWM输入
l_pwm 左运动PWM输入
Motor_a 电机端子a
MOTOR_B 电机端子b
VM 电动电源(电压输入)
gnd 地面

步骤2:将BTS7960接线到Arduino

以下是将BTS7960连接到Arduino Uno的布线指南:

BTS7960针 Arduino Pin
VCC 5V
gnd gnd
R_en 引脚4
l_en 引脚5
R_PWM 引脚6
l_pwm 引脚7
Motor_a 电机端子a
MOTOR_B 电机端子b
VM 电动机功率(+)
gnd 电动机( - )

笔记: 确保您的外部电源符合电动机的电压和当前需求。

步骤3:上传代码

这是控制电动机方向和速度的示例代码:

#define R_EN 4
#define L_EN 5
#define R_PWM 6
#define L_PWM 7

void setup() {
  pinMode(R_EN, OUTPUT);
  pinMode(L_EN, OUTPUT);
  pinMode(R_PWM, OUTPUT);
  pinMode(L_PWM, OUTPUT);

  Serial.begin(9600);
  Serial.println("BTS7960 Motor Driver Test");
}

void loop() {
  // Forward motion
  digitalWrite(R_EN, HIGH);
  digitalWrite(L_EN, LOW);
  analogWrite(R_PWM, 150); // Set speed (0-255)
  analogWrite(L_PWM, 0);
  delay(2000);

  // Stop
  digitalWrite(R_EN, LOW);
  digitalWrite(L_EN, LOW);
  analogWrite(R_PWM, 0);
  analogWrite(L_PWM, 0);
  delay(1000);

  // Reverse motion
  digitalWrite(R_EN, LOW);
  digitalWrite(L_EN, HIGH);
  analogWrite(R_PWM, 0);
  analogWrite(L_PWM, 150); // Set speed (0-255)
  delay(2000);

  // Stop
  digitalWrite(R_EN, LOW);
  digitalWrite(L_EN, LOW);
  analogWrite(R_PWM, 0);
  analogWrite(L_PWM, 0);
  delay(1000);
}

步骤4:测试设置

  1. 通过USB将您的Arduino连接到计算机。
  2. 打开Arduino IDE并选择正确的 木板港口 来自 工具 菜单。
  3. 单击 上传 按钮。
  4. 一旦上传代码,电动机将在向前和反向运动之间交替,介于两者之间。

故障排除

  • 电动机不旋转: 确保连接电动机电源并匹配电动机的电压要求。
  • 不稳定的运动: 检查所有连接,尤其是电机端子和PWM引脚。
  • 过热: 如果电动机驱动器过热,请确保适当的散热耗散并验证电动机的电流不会超过模块的额定值。

BTS7960的应用

  1. 机器人车辆
  2. 传送带系统
  3. 机动的大门
  4. 工业设置中的高功率电动机控制

结论

您已成功将BTS7960电机驱动器与Arduino连接起来,并控制了直流电动机。该多功能驱动程序非常适合需要精确控制的大功率应用程序。尝试不同的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.