基于Arduino的L298N电机驱动模块使用详解
创作时间:
作者:
@小白创作中心
基于Arduino的L298N电机驱动模块使用详解
引用
CSDN
1.
https://blog.csdn.net/weixin_42255385/article/details/142657585
L298N电机驱动模块是机器人和自动化项目中常用的驱动芯片,具有驱动能力强、发热量低、抗干扰能力强等特点。本文将详细介绍如何使用Arduino UNO开发板控制L298N电机驱动模块,实现电机的正转、反转和PWM调速等功能。
一、L298N电机驱动模块简介
L298N作为电机驱动芯片,具有驱动能力强,发热量低,抗干扰能力强的特点。一个模块可同时驱动两个直流电机工作,能够控制电机进行正转、反转、PWM调速。
说明:
- 12V输入端口接入供电电压,5V端口为输出电压,电压过低会导致驱动电机动力不足,电压过高会烧坏芯片。
- 当用跳线帽将ENA和ENB端口短接时,此时只需通过控制IN1、IN2、IN3、IN4上的电平,即可实现电机转动。
二、使用方法
1. 核心控制板:Arduino UNO
该控制板是基于ATmega328P的Arduino开发板。它有14个数字输入/输出引脚(其中6个可用于PWM输出)、6个模拟输入引脚,一个16 MHz的晶体振荡器,一个USB接口,一个DC接口,一个ICSP接口,一个复位按钮,它包含了微控制器所需的一切,你只用简单地把它连接到计算机的USB接口,或者使用AC-DC适配器,再或者用电池,就可以驱动它。
“UNO"在意大利语中意思是"一”,Arduino UNO是Arduino系列的一号开发板,Arduino IDE1.0是ArduinolDE的第一个正式版本,ArduinoUNO硬件和ArduinolDE软件建立了一套Arduino开发标准,此后的Arduino开发板和衍生产品都是在这个标准上建立起来的。
2. L298N电机状态控制表
ENA,ENB分别接入Arduino PWM引脚,通过调节PWM信号的占空比,可实现电机的调速,占空比越大,电机转速越快。同时由于硬件方面的原因,导致左右电机在相同占空比下,转速不同,这时需要调节PWM占空比实现智能小车的直线运行。
三、源代码
#define ENA 6
#define inPinA1 7
#define inPinA2 8
#define ENB 5
#define inPinB1 12
#define inPinB2 13
//直线调试成功,左轮速度需快一点
// const int speedA = 115;//右轮
// const int speedB = 128;//左轮
//占空比取值:0~255
const int speedA = 95;//右轮占空比
const int speedB = 108;//左轮占空比
void setup() {
// put your setup code here, to run once:
pinMode(ENA, OUTPUT);
pinMode(inPinA1,OUTPUT);
pinMode(inPinA2,OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(inPinB1,OUTPUT);
pinMode(inPinB2,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
forwardPwm(speedA,speedB);
delay(2000);
stop();
delay(2000);
backwardPwd(speedA, speedB);
delay(2000);
forwardRight(speedB);
delay(2000);
forwardLeft(speedB);
delay(2000);
}
//PWM调节正转速度
void forwardPwm(int valueA,int valueB)
{
forwardPwmA(valueA);
forwardPwmB(valueB);
}
//右轮
void forwardPwmA(int value)
{
analogWrite(ENA, value);
digitalWrite(inPinA1,LOW);
digitalWrite(inPinA2,HIGH);
}
//左轮
void forwardPwmB(int value)
{
analogWrite(ENB, value);
digitalWrite(inPinB1,LOW);
digitalWrite(inPinB2,HIGH);
}
//停止
void stop()
{
stopA();
stopB();
}
void stopA()
{
analogWrite(ENA, HIGH);
digitalWrite(inPinA1,LOW);
digitalWrite(inPinA2,LOW);
}
void stopB()
{
analogWrite(ENB, HIGH);
digitalWrite(inPinB1,LOW);
digitalWrite(inPinB2,LOW);
}
//value:0~255
//PWM调节反转速度
void backwardPwd(int valueA,int valueB)
{
backwardPwdA(valueA);
backwardPwdB(valueB);
}
void backwardPwdA(int value)
{
analogWrite(ENA, value);
digitalWrite(inPinA1, HIGH);
digitalWrite(inPinA2, LOW);
}
void backwardPwdB(int value)
{
analogWrite(ENB, value);
digitalWrite(inPinB1, HIGH);
digitalWrite(inPinB2, LOW);
}
//左转 A转
void forwardLeft(int value)
{
stopB();
forwardPwmA(value);
}
//右转 B转
void forwardRight(int value)
{
stopA();
forwardPwmB(value);
}
代码效果
实现智能小车前进2s,停止2s,后退2s,右转2s,左转2s
热门推荐
手机一拨号就黑屏?如何快速解决这一问题?
右手大拇指发麻是什么原因
世贸组织:2024年全球贸易展望与统计报告
关于put的15个短语
文化中国行丨入窑一色出窑万彩!传统+时尚 唐三彩焕发新面貌
紫砂泥主要分为哪几种?
漫品《庄子·大宗师》:自适其适—活出坦荡荡、亮堂堂、逍遥无待的人生
传染性单核细胞增多症的传播途径
百万医疗险 vs 重疾险:哪种更适合您?
梅西选择美国:背后的智慧与职业生涯规划
什么是定期寿险和终身寿险,定期寿险与终身寿险的异同点
春季穿衣没灵感?跟着时尚博主们学穿搭,轻松变时髦精人!
2025年手工艺品行业现状分析:全球手工艺品市场规模增长率为8.8%
彰显青春使命担当!清华大学深圳国际研究生院志愿者助力疫情防控
如何轻松制作精美手工艺品?【图解】
到无锡旅游,这些伴手礼最适合送给家人朋友
西双版纳:一个充满文化与自然奇观的地方
项目负责人如何更换团队成员
搞懂DRAM:电脑里的“临时工”内存是如何工作的?
C语言如何定义自加变量
【新春防骗指南】初二篇之婚恋市场的那些“坑”
马桶堵塞解决方案:多种方法轻松疏通
利尿药与心血管有什么的关系?
自动挡怎样驾驶才能更省油?自动挡省油的方法有哪些?
斗破苍穹:五大斗尊实力解析与压迫感全面揭示
盘点三国题材游戏:这些经典游戏带你重温三国风云!
家中种植金银花的好处与方法(让家居环境更美丽舒适,提高生活品质)
跨进智慧文旅新时代,“文旅+数字管理”推动文旅产业高质量发展
别只吃水果补维生素C了!这10种蔬菜维生素C含量比橙子还高
湿头发睡觉的危害及预防措施