Arduino Uno 使用L298N(红板)驱动直流电机:详细教程与实例演示 – 凌顺实验室

您所在的位置:网站首页 l298n输入电压可以是6伏吗 Arduino Uno 使用L298N(红板)驱动直流电机:详细教程与实例演示 – 凌顺实验室

Arduino Uno 使用L298N(红板)驱动直流电机:详细教程与实例演示 – 凌顺实验室

2024-07-17 00:21| 来源: 网络整理| 查看: 265

目录

实验效果

Arduino Uno 使用L298N直流电机驱动板,驱动2个有刷直流电机(马达),并且实现正转反转,本例子仅关注于驱动板的接通和转动,并不控制速度(PWM),如何控制速度将再其他例子说明,进行举一反三。

元件说明

WX20240603-183216

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通常以模块的形式出现,带有螺丝端子和跳线帽,方便快速连接和调试。这种模块化设计不仅节省了时间,还减少了焊接和接线的麻烦。

引脚说明

WX20240603-182554

电源引脚 +12V:电机电源输入引脚,连接电机所需的工作电压(通常在7V-35V之间)。 +5V:逻辑电源引脚,通常连接到5V电源,用于为内部逻辑电路供电。如果模块内置了5V稳压器,可以通过跳线帽选择是否使用外部5V电源。 GND:地引脚,连接电源地。 控制引脚

Logic Input

:逻辑输入引脚,包括以下四个引脚,用于控制电机的转动方向:

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 接线图

WX20240603-1816267

程序提点 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秒 loop()函数是Arduino程序的主循环,在这里实现了电机的前进、停止和后退功能。 通过digitalWrite()函数设置引脚的电平(HIGH或LOW),控制电机的转动方向。 delay(1000)表示延时1秒。 //stop 停止 digitalWrite(input1, LOW); digitalWrite(input2, LOW); digitalWrite(input3, LOW); digitalWrite(input4, LOW); delay(500); //延时0.5秒 通过将所有控制引脚设置为低电平(LOW),实现电机的停止。 delay(500)表示延时0.5秒。 //back 向后转 digitalWrite(input1, LOW); digitalWrite(input2, HIGH); digitalWrite(input3, LOW); digitalWrite(input4, HIGH); delay(1000); } 通过调整电平设置,实现电机的反向转动。 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); }

程序上传后可以看到电机转动。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3