在这篇文章中我们将学习L298N双h桥直流电机驱动模块,它可以用微控制器和ic驱动有刷直流电机和步进电机。
概述
模块化电路板是电子设计人员的最佳救星,同时也减少了原型设计的错误。这是为微控制器编写代码的程序员最喜欢的,他们把大部分时间花在在计算机前输入代码,而很少有时间焊接分立电子元件。
这就是为什么我们可以发现成吨成吨的不同模块电路都是为Arduino板制作的,它易于接口,在设计我们的原型时硬件错误最小。
L298N模块示意图:

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

销描述:
·左侧为OUT1和OUT2端口,用于连接直流电机。类似地,另一个直流电机的OUT3和OUT4。
·ENA和ENB是使能引脚,通过将ENA连接到高5V或+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。是的,你必须输入5V如果你需要应用超过12V(当跳线1被拆除)。
·5V输入是为了IC正常工作,因为去掉跳线将禁用内置的5V稳压器,并保护来自12v端子的更高输入电压。
·如果电源在7至12V之间,则+5V端子作为输出;如果电源超过12V,则作为输入;
·大部分项目只需要12V以下的电机电压,保持跳线不变,输出+5V端子。
跳线2和跳线3(见图示):
·如果你移除这两个跳线,你必须从微控制器输入启用和禁用信号,大多数用户喜欢移除这两个跳线,并应用微控制器的信号。
·如果您保持这两个跳线,则OUT1到OUT4将始终启用。记住ENA跳线的OUT1和OUT2。ENB跳投出局3和出局4。
现在让我们看一个实际的电路,我们如何接口马达,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, 17安培电池,但当我使用mosfet驱动电机电压下降3至4伏负载。我简单地连接了irf450 mosfet。在达林顿配置。我的电机是大约5安培和12v。我要我的妈妈全速跑。它的速度很好时,没有mosfet,但电源下降时,mosfet连接和运行通过aurdiuno PWM 255最大速度。
电压到底在哪里下降,是通过电机还是通过电池?我假设它是通过电机的,在这种情况下,你的Arduino可能是错误编码或mosfet有故障。
先生,我在下面做了一个电路连接,一个电机驱动电路。当马达没有负载时,它工作正常,但当我加载马达时,它发出哔哔声。和运动停止。我使用功率mosfet,其额定值为42安培,电压额定值也高达24。
穆罕默德,请给我看一下确切的电路原理图,这样我能更好地理解,或者你可以参考以下链接,制作其中一个,都经过了完美的测试:
//www.addme-blog.com/dc-motor-speed-controller-circuits/
先生,我在找电路电子燃料注入。做我的最后一年的项目,如果你有任何信息,那么请分享给我如何开始
穆罕默德,对不起,我现在没有任何与电子燃油喷射有关的电路
我用的是12v的外部电源,而且我已经把跳线拔掉了。但它仍然给出6v输出A..我必须做什么??请回复快速
我将这个问题转给Mr. GR,他会尽快回复你!
嗨Laavanya,
你指的是哪个跳线,有3个跳线,你指的是OUT1到out4的哪个输出?
问候