【教程向】如何用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供电。



<think>好的,我现在要回答用户关于L298N电机驱动模块在使用PWM调速时的电压要求的问题。首先,我需要回顾之前提供的引用内容,找到相关的电压信息。 根据引用[3],里面提到L298N的12V输入端口接入供电电压,5V端口是输出电压。同时指出电压过低会导致电机动力不足,电压过高会烧坏芯片。这里需要注意的是,这里的12V可能是一个参考值,但实际应用中可能有不同的电压范围。 再查看引用[4],其中讨论了PWM调速的基本原理,但没有直接提到电压范围。不过结合引用[3]中的信息,可以推断输入电压的范围应该是在一定的安全范围内,既要满足电机的工作电压,又不能超过芯片的承受能力。 另外,引用[1][2]提到使用L298N驱动步进电机直流电机的实例,但具体电压参数可能未明确说明。需要进一步确认L298N芯片的规格,通常L298N的工作电压范围是5V到35V,但具体供电电压要根据所驱动的电机额定电压来定。例如,如果电机是12V的,那么输入电压应为12V左右,同时确保逻辑部分(如Arduino)的5V供电稳定。 此外,用户可能混淆了逻辑电压驱动电压。L298N模块通常有两个电源输入:一个是驱动电压(接电机电源),另一个是逻辑电压(如5V,可能来自Arduino)。在PWM调速时,ENAENB需要PWM信号,这个信号电压通常为5V,由逻辑电源提供。而驱动电压则根据电机需求调整,但必须在L298N支持的范围内。 需要提醒用户注意,输入电压过高可能导致芯片过热甚至损坏,而电压不足则无法驱动电机。因此,建议根据电机的额定电压选择适当的输入电压,并确保逻辑电压稳定。同时,当使用PWM调速时,应通过ENA/ENB使能端输入PWM信号,而不是直接改变驱动电压。 总结来说,L298N的驱动电压范围通常是5V到35V,但具体应根据电机规格选择,同时逻辑电压保持5V。需要结合这两个电压来正确配置模块,确保PWM调速的有效性安全性。</think>### L298N电机驱动模块PWM调速电压要求 L298N模块在PWM调速时涉及**驱动电压****逻辑电压**两部分,具体要求如下: 1. **驱动电压(电机供电)** - **输入范围**:$5V \sim 35V$(芯片理论支持范围),但需根据电机额定电压选择 - **典型值**:$7V \sim 12V$(常见直流电机工作电压)[^3] - **注意事项**: - 电压过低会导致电机动力不足,例如输入低于电机额定电压时转速下降; - 电压过高可能烧毁芯片,需配合散热片使用。 2. **逻辑电压(控制信号)** - **输入范围**:$5V$(需Arduino等控制器电平匹配)[^3] - **作用**:提供IN1/IN2/IN3/IN4方向控制信号及ENA/ENB的PWM调速信号。 3. **PWM调速实现条件** - 需移除ENA/ENB跳线帽,通过外部PWM信号控制使能端[^3]; - PWM频率建议范围:$1kHz \sim 10kHz$(过高会导致电机响应异常)[^4]。 **配置示例**: 若驱动12V直流电机: 1. 驱动电压接$12V$电源; 2. 逻辑端接Arduino的$5V$输出; 3. ENA引脚输入Arduino生成的PWM信号(占空比$0\% \sim 100\%$调节转速)。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值