【教程向】如何用L298N电机驱动模块与Arduino实现PWM调速

要理解本教程,你需要:

已经理解什么是高低电平

②已经知道什么是PWM调速(可等效于知道什么是占空比)

③已经学会使用analogWrite和digitalWrite

④知道L298N能带动你电机的功率,不至于烧毁

====================================================================

 因为要用到这个驱动,查了一下网上关于L298N的教程都乱七八糟的。自己搞了搞之后感觉有必要发一篇教程。

 本教程主要面向YWROBOT家的L298N驱动

 因为L298N实际上是个驱动芯片,所以就算都叫L298N,不同家的驱动电路图也是不一样的,所以

      绝对不能光记一些结果性的结论!!!!(下面会举例)                      

我使用的是YWROBOT MRL298 V2

先上电路图


产品外形图


我们从右上到左上先介绍它的端子都是什么。


一开始有IN1~4四个端子,是通过输出高低电平来控制MotorA和MotorB正反转的,IN1 2是一对控制MotorA,3 4是一对控制MotorB。ENA和ENB是使能端,用来PWM调速的。5V用来连接arduino的5v输出,GND连对应输出的地线。


接下来这三个,PWR ENA ENB带有跳线帽,就是直接把两个端子连接的小东西,如果要进行PWM调速,要拔下来,露出杜邦线能插的接口(虽然接下来要讲不用插,但是要拔下来);如果不要PWM调速,而是让电机全速运转,就不用拔了。


PWR是自动变行驶模式指示灯,通常是NORM模式。这个我不清楚是用来干什么的,但对于PWM调速不重要。


实际上原有跳线帽的两对EN端子,每一对中只有一个端子是用来连接arduino的,另一个端子接入的是5V电平,也就是刚才提到的5V。 这一点,网上的教程全部都没有提到,而对于不会看电路图或者第一次接触电机驱动的人,很可能会被误导,这就是上面我说到的例子,网上有人说这两对EN,都是外侧的端子接arduino,错了。 具体为什么错,我们下面讲。


这里需要用到占空比和高低电平的知识。原先有跳线帽会全速运转,是因为跳线帽直接将5V提供的5V点评给了EN的使能端子,让他一直保持在5V高电平,相当于我们从arduino一直输入一个占空比为0的5V电平。PWM调速应该接的那一端电压是由arduino上能生成PWM波的端子提供的。我手上的这块L298N驱动模块,恰恰内侧才是接收PWM波的那端


明确这一点之后,将IN1~4分别接到arduino上digital的口,初始化后使用digitalWrite就可以实现正反转了,将ENA/ENB(无论是拔掉之后的内侧端子还是和IN1~4更近的单个端子都可以)接到arduino上带~的端子(3 5 6 9 10 11,就是能输出PWM波的端子)初始化后使用analogWrite输出PWM波就可以调速了,部分调速代码示例:

for(i=0;i<=255;i+=5)
{

  analogWrite(3,i);

  analogWrite(10,0);

  analogWrite(5,i);

  analogWrite(6,0);

  delay(50);
}
关于下面绿色的螺丝接口:

MotorA/B无论正反都可以接电机,如果转的方向不对把代码高低电平换一下就可以了。

如果需要外接额外电压,正极接VIN,负极接GND。



================================================================================================================
需要注意的是,arduino内含稳压芯片,如果给arduino供电是5V,实际上能给电机驱动的只有3.3V,所以如果想给电机驱动5V且不接额外电源,arduino需要至少9V供电。



  • 58
    点赞
  • 305
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: L298N 模块是一种常用的驱动直流电机的电路模块,它可以帮助电机控制电路实现方向和速度的控制。在使用 L298N 模块控制电机时,可以使用 PWM 调节电机的转速,下面是使用 L298N 模块驱动电机实现 PWM 调速的基本步骤: 1. 将 L298N 模块与 Arduino 或其他单片机连接,确保连接正确,参考模块和单片机的引脚说明书。 2. 连接电机,将电机的正极和负极分别连接到模块的 OUT1 和 OUT2 引脚,或 OUT3 和 OUT4 引脚上。 3. 在代码中初始化 L298N 模块,设置引脚模式和初始电平状态。 4. 使用 PWM 函数控制电机的转速,可以根据需要调整 PWM 占空比来控制电机的速度。 5. 控制电机的方向,通过改变模块的使能引脚(ENA 和 ENB)的电平状态,实现正转和反转。 以下是一个简单的示例代码,使用 L298N 模块控制电机的转速和方向,实现 PWM 调速: ``` // 定义引脚 int enA = 10; int in1 = 9; int in2 = 8; void setup() { // 设置引脚模式 pinMode(enA, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); } void loop() { // 设置 PWM 占空比,控制电机速度 analogWrite(enA, 200); // 控制电机方向,实现正转 digitalWrite(in1, HIGH); digitalWrite(in2, LOW); delay(5000); // 延迟 5 秒 // 控制电机方向,实现反转 digitalWrite(in1, LOW); digitalWrite(in2, HIGH); delay(5000); // 延迟 5 秒 } ``` 在上述代码中,我们使用了 Arduino 的 `analogWrite()` 函数来设置 PWM 占空比,控制电机的转速。使用 `digitalWrite()` 函数控制模块的使能引脚和电机的方向。在 `loop()` 循环中,我们控制电机先正转 5 秒,再反转 5 秒,实现电机的周期性运动。 ### 回答2: L298N模块是一个常用的直流电机驱动模块。它能够驱动两个直流电机,最大输出电流可以达到2A,支持PWM调速。 使用L298N模块驱动电机,需要先将直流电源连接到模块的电源接口上。接着,将电机连接到模块的输出端口和控制信号端口上。 L298N模块的控制信号来自于单片机或其他控制器。需要提前设定好电机速度、方向等参数。控制信号通过L298N模块的控制接口发送给模块,模块根据这些信号控制电机转动。其中,PWM调速是通过控制信号的脉宽来实现的。 为了实现PWM调速,需要将控制信号接到模块的使能端口上。根据控制信号的高低电平,模块会给电机发送不同的电流,从而实现不同的转速。在实际应用中,可以通过改变脉宽来调节电机的转速。 总之,L298N模块是一种非常实用的电机驱动器,可以轻松驱动直流电机,并提供PWM调速的功能,是众多电子制作和机器人控制项目的不可或缺的组成部分。 ### 回答3: l298n模块驱动电机是一种常用的电机驱动模块,可以用来驱动直流电机和步进电机。其使用场景非常广泛,常见于机器人、小车、航模等各种电子设备中。 l298n模块的主要功能是将微控制器输出的PWM信号经过驱动电路放大后,通过电机输出来实现电机调速。使用l298n模块可以实现电机的正转、反转和调速功能,可以满足各种应用场景的需求。 l298n模块的接线非常简单,只需要将模块的VCC、GND、IN1、IN2、EN1和EN2引脚依次连接到微控制器的正负电源、PWM信号输出、以及电机的正负极。在编写代码时,可以利用PWM信号调节EN1和EN2引脚输出的占空比,从而控制电机的转速。 在使用l298n模块驱动电机时,需要注意一些问题。首先,需要根据实际需要选择合适的电机,同时保证电机的电压和电流范围在l298n模块的支持范围之内。其次,需要根据实际情况调整PWM信号的占空比,以达到理想的电机转速。最后,还需要注意模块的供电和散热问题,以保证模块的正常工作和使用寿命。 总的来说,l298n模块驱动电机是一种非常实用的电机驱动模块,可以帮助开发者快速搭建各种电子设备。在使用过程中,需要注意一些问题,但只要注意到这些问题,就可以用它来实现各种电机调速的要求。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值