Arduino Uno 使用L298N(红板)驱动直流电机:详细教程与实例演示
创作时间:
作者:
@小白创作中心
Arduino Uno 使用L298N(红板)驱动直流电机:详细教程与实例演示
引用
1
来源
1.
https://lingshunlab.com/book/arduino/arduino-uno-using-l298n-red-board-to-drive-dc-motors-detailed-tutorial-and-examples
L298N是一款非常受欢迎的双H桥电机驱动模块,广泛应用于各种机器人和自动化项目中。它具有双H桥设计、高电流输出、宽电压范围等特点,特别适合初学者和爱好者使用。本文将详细介绍如何使用Arduino Uno和L298N驱动板控制直流电机的正转和反转。
实验效果
Arduino Uno 使用L298N直流电机驱动板,驱动2个有刷直流电机(马达),并且实现正转反转。本例子仅关注于驱动板的接通和转动,并不控制速度(PWM),如何控制速度将在其他例子中说明。
元件说明
L298N是一款非常受欢迎的双H桥电机驱动模块,广泛应用于各种机器人和自动化项目中。它的设计使得控制直流电机变得简单而高效,特别适合初学者和爱好者。以下是L298N的一些关键特点和吸引人的地方:
1. 双H桥设计
L298N内部集成了两个H桥电路,可以同时控制两个直流电机的正反转。这使得它非常适合机器人项目,比如双轮驱动的小车。
2. 高电流输出
每个H桥可以提供高达2A的持续电流,并且峰值电流可以达到3A。这意味着它可以驱动大多数小型和中型直流电机,满足各种项目需求。
3. 宽电压范围
L298N支持4.5V到46V的宽电压输入范围,适用于多种电源环境,从低压电池到高压电源都能轻松应对。
4. 简单易用
模块上的引脚布局清晰明了,配合Arduino等微控制器使用非常方便。只需几个简单的连接和几行代码,就可以实现电机的正反转和速度控制。
5. 内置保护功能
L298N模块内置了过热保护和短路保护功能,确保在高负载或异常情况下模块和电机的安全。
6. 丰富的应用场景
无论是DIY机器人、智能小车、机械臂,还是其他需要电机控制的项目,L298N都能胜任。它的多功能性和可靠性使其成为众多创客和工程师的首选。
7. 模块化设计
L298N通常以模块的形式出现,带有螺丝端子和跳线帽,方便快速连接和调试。这种模块化设计不仅节省了时间,还减少了焊接和接线的麻烦。
引脚说明
电源引脚
- +12V:电机电源输入引脚,连接电机所需的工作电压(通常在7V-35V之间)。
- +5V:逻辑电源引脚,通常连接到5V电源,用于为内部逻辑电路供电。如果模块内置了5V稳压器,可以通过跳线帽选择是否使用外部5V电源。
- GND:地引脚,连接电源地。
控制引脚
- IN1:输入1
- IN2:输入2
- IN3:输入3
- IN4:输入4
使能引脚
- A Enable:使能A通道(ENA),用于控制电机A的启用和速度调节。通常连接到PWM信号。
- B Enable:使能B通道(ENB),用于控制电机B的启用和速度调节。通常连接到PWM信号。
输出引脚
- Out 1:输出1,连接电机A的一端。
- Out 2:输出2,连接电机A的另一端。
- Out 3:输出3,连接电机B的一端。
- Out 4:输出4,连接电机B的另一端。
BOM
名称 | 数量 |
|---|---|
Arduino Uno 开发板 | 1 |
L298N 电机驱动模块 | 1 |
直流马达 | 2 |
9V 电池 | 1 |
9V 电池扣子 | 1 |
跳线 | 若干 |
面包板 | 1 |
接线图
程序提点
1. 定义引脚
int input1 = 5; // 定义uno的pin 5 向 input1 输出
int input2 = 6; // 定义uno的pin 6 向 input2 输出
int input3 = 9; // 定义uno的pin 9 向 input3 输出
int input4 = 10; // 定义uno的pin 10 向 input4 输出
- 定义了四个整数变量
input1、input2、input3和input4,分别对应Arduino的引脚5、6、9和10。这些引脚将用于控制电机的转动方向。
2. 初始化引脚模式
void setup() {
pinMode(input1, OUTPUT);
pinMode(input2, OUTPUT);
pinMode(input3, OUTPUT);
pinMode(input4, OUTPUT);
}
- 在
setup()函数中,将四个引脚的模式设置为OUTPUT(输出模式),以便可以通过这些引脚向外部电路输出电平信号。
3. 主循环
void loop() {
//forward 向前转
digitalWrite(input1, HIGH); //给高电平
digitalWrite(input2, LOW); //给低电平
digitalWrite(input3, HIGH); //给高电平
digitalWrite(input4, LOW); //给低电平
delay(1000); //延时1秒
//stop 停止
digitalWrite(input1, LOW);
digitalWrite(input2, LOW);
digitalWrite(input3, LOW);
digitalWrite(input4, LOW);
delay(500); //延时0.5秒
//back 向后转
digitalWrite(input1, LOW);
digitalWrite(input2, HIGH);
digitalWrite(input3, LOW);
digitalWrite(input4, HIGH);
delay(1000);
}
loop()函数是Arduino程序的主循环,在这里实现了电机的前进、停止和后退功能。- 通过
digitalWrite()函数设置引脚的电平(HIGH或LOW),控制电机的转动方向。 delay(1000)表示延时1秒。
完整程序
//LingShun Lab
int input1 = 5; // 定义uno的pin 5 向 input1 输出
int input2 = 6; // 定义uno的pin 6 向 input2 输出
int input3 = 9; // 定义uno的pin 9 向 input3 输出
int input4 = 10; // 定义uno的pin 10 向 input4 输出
void setup() {
// Serial.begin (9600);
//初始化各IO,模式为OUTPUT 输出模式
pinMode(input1,OUTPUT);
pinMode(input2,OUTPUT);
pinMode(input3,OUTPUT);
pinMode(input4,OUTPUT);
}
void loop() {
//forward 向前转
digitalWrite(input1,HIGH); //给高电平
digitalWrite(input2,LOW); //给低电平
digitalWrite(input3,HIGH); //给高电平
digitalWrite(input4,LOW); //给低电平
delay(1000); //延时1秒
//stop 停止
digitalWrite(input1,LOW);
digitalWrite(input2,LOW);
digitalWrite(input3,LOW);
digitalWrite(input4,LOW);
delay(500); //延时0.5秒
//back 向后转
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
digitalWrite(input3,LOW);
digitalWrite(input4,HIGH);
delay(1000);
}
程序上传后可以看到电机转动。
热门推荐
惠州水东街:千年古街的现代新生
铁锅炖大鹅:四种香料让鹅肉鲜嫩无腥,附详细烹饪步骤
李贺诗歌的比喻艺术:浪漫奇想与精炼雕琢的完美融合
沈阳北陵公园:清昭陵与皇太极广场探秘
北京朝阳站地铁3号线开通,楼市新政助力房价上涨
绿意盎然家居风水指南:打造幸运花园
潞城区一日游:打卡网红景点
中华优秀传统文化如何滋养社会主义核心价值观
苍术:从传统到现代的“全能选手”
奥司他韦用药须知:儿童呕吐后如何正确补服
患者等待时间减少40%,AI客服让就医更便捷
游戏王现两张4000攻击力十三星怪兽,如何使用与应对
专业心理疏导助传销受害者重返社会,广东救助中心获赞
全国首批试点:宜昌襄阳数字化管理破解门牌号难题
冬季室内植物养护全攻略:让绿意常伴左右
《死或生6》大招教学:新手也能秒变高手
斯里兰卡七天环岛游,打卡狮子岩绝美风光
2000多位老人参与,老兵合唱团唱响身心健康新乐章
空气炸锅版香酥鸡翅:简单三步,小白也能做出餐厅级美味
丹参:冬季养生护心宝
生姜虽好但不能乱吃,冬季养生必知的食用指南
加味逍遥丸:秋冬养生调情绪,疏肝健脾助睡眠
西安到宁夏自驾游,打卡最美风景线
“国家队”南方基金增持上海电力超亿元,新能源转型获资金认可
宠物医生揭秘:狗狗夜间兴奋的真相
肩周炎患者必备:爬墙运动正确姿势
游戏王中的北欧神话:奥丁芙蕾雅等神祇化身卡牌
家用一氧化碳报警器:守护家的安全神器
青岛极地海洋公园攻略:4大场馆、特色表演和游览路线全解析
从家庭到商务:2024龙年英文祝福语全攻略