L298N电动机驱动器是控制直流电动机和步进电动机的流行模块。它使您可以使用Arduino的PWM信号来控制运动速度和方向,从而使其非常适合机器人和自动化项目。本教程将指导您与Arduino连接和使用L298N。
你需要什么
- L298N电机驱动器模块
- Arduino董事会(例如Uno,Mega,Nano)
- 直流电动机或步进电动机
- 外部电源(例如9V或12V电池)
- 面包板和跳线电线
- 安装了带有Arduino IDE的计算机
步骤1:了解L298N电动机驱动器
L298N模块是双H桥电动机驱动器,这意味着它可以独立控制两个DC电动机的速度和方向或一个步进电动机。
L298N PINOUT
别针 | 功能 |
---|---|
in1,in2 | 电机A方向控制输入 |
in3,in4 | 电机B方向控制输入 |
恩纳 | 电机速度控制(PWM输入) |
ENB | 电机B速度控制(PWM输入) |
OUT1,OUT2 | 电机A输出 |
out3,out4 | 电机B输出 |
12V(VCC) | 电动机的外电源 |
5V(可选) | 逻辑电源(如果卸下跳线) |
gnd | 地面 |
笔记:
- 该模块包括一个板载5V调节器,如果套头衫到位,VCC为7-12V,则为逻辑电路提供动力。
- 卸下跳线需要您单独提供5V逻辑供应。
步骤2:将L298N接线到Arduino
这是将L298N连接到Arduino Uno和两个DC电机的方法:
L298N针 | Arduino Pin |
---|---|
恩纳 | 引脚10(PWM) |
在1 | 引脚8 |
in2 | 引脚9 |
ENB | 引脚11(PWM) |
in3 | 引脚6 |
in4 | 引脚7 |
gnd | Arduino Gnd |
12V(VCC) | 外部电源(9V/12V) |
OUT1,OUT2 | 电动机端子 |
out3,out4 | 电机B端子 |
步骤3:上传代码
这是控制两个DC电机的示例草图:
示例代码
// Motor A connections
#define ENA 10
#define IN1 8
#define IN2 9
// Motor B connections
#define ENB 11
#define IN3 6
#define IN4 7
void setup() {
// Set all pins as outputs
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Move Motor A forward
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 150); // Set speed (0-255)
// Move Motor B backward
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, 150); // Set speed (0-255)
delay(2000); // Run for 2 seconds
// Stop both motors
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
delay(1000); // Pause for 1 second
// Move both motors in reverse
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 200);
analogWrite(ENB, 200);
delay(2000); // Run for 2 seconds
// Stop both motors
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
delay(1000); // Pause for 1 second
}
步骤4:测试设置
- 通过USB将Arduino连接到您的计算机。
- 打开Arduino IDE并选择正确的 木板 和 港口 在 工具 菜单。
- 单击将代码上传到Arduino 上传.
- 根据程序序列观察电动机向前旋转,停止和逆转。
可选:动态控制速度
您可以通过更改发送到的PWM值来动态调整电动机速度 ENA
和 ENB
使用AnalogWrite()引脚。例如:
analogWrite(ENA, 100); // Slow speed
analogWrite(ENA, 255); // Full speed
L298N的应用
- 建造机动机器人
- 控制传送带
- 驾驶步进电动机
- 使用直流电动机自动化系统
故障排除
- 电动机不旋转: 确保连接外部电源并提供足够的电流。
- 不正确的电机方向: 检查销钉的接线,并在需要时进行反向连接。
- 不稳定的运动行为: 使用稳定的电源并避免连接松动。
结论
您已成功将L298N电机驱动器与Arduino连接起来,以控制直流电动机。这个多功能模块使您可以轻松管理电动机速度和方向。通过将传感器,遥控器或其他模块集成到您的电动项目中,进一步实验!