在这篇文章中,我们将学习L298N双h桥直流电机驱动模块,它可以用微控制器和集成电路驱动有刷直流电机和步进电机。
概述
模块化电路板是电子设计师最好的时间救星,也减少了原型设计的错误。这是为微控制器编写代码的程序员最喜欢的方式,他们把大部分时间花在在电脑前输入代码上,而没有多少时间焊接离散的电子元件。
这就是为什么我们可以找到吨吨不同的模块化电路是专为Arduino板,它很容易接口和有最少的硬件错误,而设计我们的原型。
L298N模块示意图:

该模块围绕IC L298N构建;它通常可以在电子商务网站上找到。
我们使用直流电机驱动因为集成电路和微控制器一般不能提供不超过100毫安的电流。微控制器很智能,但不强大;这个模块将增加Arduino, ic和其他微控制器的肌肉来驱动大功率直流电机。
它可以同时控制2台直流电机,每台最多2安培或一台步进电机。我们可以控制速度利用PWM和其旋转方向的电机。
这个模块是理想的制造机器人以及玩具车等土地搬迁项目。
让我们看看L298N模块的技术细节。

销描述:
·左手边有OUT1和OUT2接口,用于连接直流电机。类似地,另一个直流电机的OUT3和OUT4。
·ENA和ENB为使能引脚,将ENA连接到高电压或+5V;它启用端口OUT1和OUT2。如果你将ENA引脚连接到低或地,它将禁用OUT1和OUT2。类似地,对于ENB和OUT3和OUT4。
·IN1 ~ IN4为将连接Arduino的输入引脚。通过单片机或手动输入IN1 +Ve和IN2 -Ve, OUT1变高,OUT2变低,即可驱动电机。
·输入IN3高,OUT4高;输入IN4低,OUT3低,现在我们可以驱动另一台电机。
·如果你想反转电机的旋转方向,只需反转IN1和IN2的极性,IN3和IN4也一样。
·将PWM信号应用于ENA和ENB,可以在两个不同的输出端口上控制电机的转速。
·单板名义上可接受7 - 12V电压。你可以在+12V端子输入电源,接地到0V。
·+5V端子为OUTPUT,可为Arduino或任何其他模块供电。
跳投:
有三个跳线针;您可以向上滚动查看所示图像。
所有跳线将在一开始连接;移除或保留跳线取决于您的需要。
跳线1(见图示):
·如果你的电机需要超过12V电源,你必须断开跳线1,并在12V端子施加所需电压(最大35V)。把另一个5 v电源和输入在+5V端子。是的,如果你需要应用超过12V(当跳线1被移除时),你必须输入5V。
·5V输入是为了IC正常工作,因为移除跳线将使内置的5V稳压器失效,并保护从12v端子的更高输入电压。
·如果你的电源在7到12V之间,+5V端子作为输出;如果你施加超过12V和跳线被移除,则作为输入。
·大多数项目只需要电机电压低于12V,所以保持跳线不变,使用+5V端子作为输出。
跳跃者2和跳跃者3(见图示):
·如果去掉这两个跳线,就需要从单片机输入使能信号和使能信号,大多数用户更倾向于去掉这两个跳线,从单片机应用信号。
·如果您保持两个跳线,OUT1到OUT4将始终启用。记住ENA跳线用于OUT1和OUT2。ENB跳线用于OUT3和OUT4。
现在让我们看一个实际的电路,我们怎么能接口马达,Arduino并供给驱动模块。
示意图:

上述电路可以用于玩具汽车,如果你适当地改变代码和添加一个操纵杆。
你只需要给L289N模块供电,模块将通过Vin终端为Arduino供电。
上述电路将两个电机顺时针旋转3秒,停止3秒。之后电机逆时针旋转3秒,停止3秒。这展示了h桥的实际应用。
之后,两个电机开始逆时针缓慢旋转,逐渐加速至最大,然后逐渐减速至零。这演示了PWM控制电机的速度。
计划:
//---------------- 项目由R.GIRISH --------------//
const int Enable_A = 9;
const int Enable_B = 10;
const int inputA1 = 2;
const int inputA2 = 3;
const int inputB1 = 4;
const int inputB2 = 5;
无效的设置()
{
pinMode (Enable_A、输出);
pinMode (Enable_B、输出);
pinMode (inputA1、输出);
pinMode (inputA2、输出);
pinMode (inputB1、输出);
pinMode (inputB2、输出);
}
无效循环()
{
//----使能输出A和B------//
digitalWrite (Enable_A、高);
digitalWrite (Enable_B、高);
//---------- 汽车运行 -----------//
digitalWrite (inputA1、高);
digitalWrite (inputA2、低);
digitalWrite (inputB1、高);
digitalWrite (inputB2、低);
延迟(3000);
/ /——禁用电机 ----------//
digitalWrite (Enable_A、低);
digitalWrite (Enable_B、低);
延迟(3000);
/ /——反向马达 ----------//
digitalWrite (Enable_A、高);
digitalWrite (Enable_B、高);
digitalWrite (inputA1、低);
digitalWrite (inputA2、高);
digitalWrite (inputB1、低);
digitalWrite (inputB2、高);
延迟(3000);
/ /——禁用电机 ----------//
digitalWrite (Enable_A、低);
digitalWrite (Enable_B、低);
延迟(3000);
//---------- 速度上升 ----------//
For (int I = 0;我& lt;256;我+ +)
{
analogWrite (Enable_A,我);
analogWrite (Enable_B,我);
延迟(40);
}
//---------- 速度下降 ----------//
For (int j = 256;j比;0;j——)
{
analogWrite (Enable_A j);
analogWrite (Enable_B j);
延迟(40);
}
/ /——禁用电机 ----------//
digitalWrite (Enable_A、低);
digitalWrite (Enable_B、低);
延迟(3000);
}
//---------------- 项目由R.GIRISH --------------//
作者的原型:

如果您对这个L298N直流电机驱动器项目有任何问题,请在评论区表达,您可能会收到快速回复。
我使用12v外部电源…我已经移除跳线…但它仍然在A上给出6v。我要做什么??请回复快速
我会把这个问题转给GR先生,他会很快回复你的!
嗨Laavanya,
你指的是哪个跳线,它们有3个,哪个输出你指的是OUT1到out4 ?
问候
先生,我在找电路电子燃油喷射。。做我的最后一年的项目,如果你有任何信息,所以亲切,分享给我如何开始
穆罕默德,对不起,我现在没有任何与电子喷射燃料相关的电路
先生,我在下面做了一个电路链接,一个电机驱动电路。当电机空载时工作正常,但当我给电机装上负载时,它会发出哔哔声。和运动停止。我使用功率mosfet的额定值是42安培,电压额定值也高达24。
穆罕默德,请给我看看具体的电路原理图,以便我更好地理解,或者你可以参考以下链接,做出其中一个,所有这些都经过了完美的测试:
//m.addme-blog.com/dc-motor-speed-controller-circuits/
我有12v, 17安培电池,但当我使用mosfet驱动电机电压下降3至4v负载时,我只是连接了irf450 mosfet。在达林顿配置。我的母亲大约5安培和12伏。我想让我的发动机全速运转。它的速度良好时,没有mosfet,但电源下降时,mosfet连接和运行aurdiuno PWM 255最高速度。
电压到底在哪里下降,是在电机上还是在电池上?我猜是在电机上,那样的话你的Arduino可能编码错误或者mosfet有问题。