在这个Arduino教程中,我们将学习如何使用Arduino来控制直流电机。我们将看一看控制直流电机的一些基本技术,并通过两个例子,我们将学习如何使用L298N电机驱动器和Arduino板控制直流电机。
我们可以通过简单地控制电机的输入电压来控制直流电机的速度,最常用的方法是利用PWM信号。

PWM直流电机控制
脉宽调制是一种技术,它允许我们通过快速打开和关闭电源来调整进入电子设备的电压的平均值。平均电压取决于占空比,或者信号在一段时间内处于开启状态的时间与信号处于关闭状态的时间。

所以根据电机的大小,我们可以简单地将Arduino PWM输出连接到晶体管的基部或MOSFET的门上,通过控制PWM输出来控制电机的速度。低功率Arduino PWM信号打开和关闭MOSFET的门,通过该门驱动大功率电机。
h桥直流电机控制
另一方面,为了控制旋转方向,我们只需要反转电流流过电机的方向,最常见的方法是使用h桥。一个h桥电路包含四个开关元件、晶体管或场效电晶体,发动机在中心形成一个h型结构。通过同时激活两个特殊的开关,我们可以改变电流流动的方向,从而改变电机的旋转方向。

因此,如果我们结合这两种方法,PWM和h桥,我们可以有一个完整的控制直流电机。有许多直流电动机驱动具有这些特性,而L298N是其中之一。
L298N驱动程序
该L298N是一个双h桥电机驱动器,允许速度和方向控制两个直流电机在同一时间。该模块可以驱动电压在5到35V之间的直流电机,峰值电流可达2A。

让我们仔细看看L298N模块的pinout,并解释它是如何工作的。亚博88下载该模块有两个螺杆端子座用于电机A和电机B,另一个螺杆端子座用于接地引脚,电机的VCC和一个可作为输入或输出的5V引脚。

这取决于在电机VCC使用的电压。该模块有一个板载5V调节器,可以使用跳线启用或禁用。如果电机供电电压高达12V,我们可以启动5V稳压器,可以使用5V引脚作为输出,例如为我们的Arduino板供电。但是如果电机电压大于12V,我们必须断开跳线,因为这些电压会对板载5V稳压器造成损坏。在这种情况下,5V引脚将被用作输入,因为我们需要将它连接到5V电源,以使IC正常工作。
我们可以在这里注意到,这种集成电路的电压降约为2V。例如,如果我们使用12V电源,电机终端的电压将是10V左右,这意味着我们将无法获得最大速度的12V直流电机。

接下来是逻辑控制输入。使能A和使能B引脚用于使能和控制电机的速度。如果一个跳线出现在这个引脚上,电机将被启用并以最大速度工作,如果我们去掉跳线,我们可以连接一个PWM输入到这个引脚,以那种方式控制电机的速度。如果我们将这个引脚连接到一个接地电机将被禁用。
接下来,输入1和2针用于控制电动机的转动方向,和电动机的输入3和4 b .使用这些别针我们实际上控制内的h桥的开关L298N IC。如果输入1是低,2是高马达会向前移动,反之亦然,如果输入1为高,输入2为低,电机将后退。如果两个输入相同,无论是低或高电机将停止。这同样适用于输入3、4和电机B。
Arduino和L298N电机驱动器
现在让我们做一些实际的应用。在第一个例子中,我们将使用电位器控制电机的速度,并使用一个按钮改变旋转方向。这是电路原理图。
因此,我们需要一个L298N电机驱动器,直流电机,电位器,按钮和Arduino板。
你可以从下面的链接获得这个Arduino教程所需的组件:
- L298N驱动程序 ......................................亚马逊/Banggood/阿里巴巴全球速卖通
- 12V高扭矩直流电机............ ..亚马逊/Banggood/阿里巴巴全球速卖通
- 带塑料轮胎的直流电机.......亚马逊/Banggood/阿里巴巴全球速卖通
- Arduino电路板 ....................................亚马逊/Banggood/阿里巴巴全球速卖通
- 面包板和跳线............亚马逊/Banggood/阿里巴巴全球速卖通
yaboAG娱乐城披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。
Arduino代码
下面是Arduino的代码:
/* Arduino直流电机控制- PWM | h桥| L298N - Example 01 by Dejan Nedelkovski, www.HowToMechatronics.c亚搏手机版官方下载om */ #define enA 9 #define in1 6 #define in2 7 #define button 4 int rotDirection = 0;Int pressed = false;void setup() {pinMode(enA, OUTPUT);pinMode(三机一体、输出);pinMode (in2、输出);pinMode(按钮,输入);//设置初始旋转方向digitalWrite(in1, LOW);digitalWrite (in2、高);} void loop() {int potValue = analogRead(A0);//读取电位器值int pwmOutput = map(potValue, 0, 1023, 0, 255); // Map the potentiometer value from 0 to 255 analogWrite(enA, pwmOutput); // Send PWM signal to L298N Enable pin // Read button - Debounce if (digitalRead(button) == true) { pressed = !pressed; } while (digitalRead(button) == true); delay(20); // If button is pressed - change rotation direction if (pressed == true & rotDirection == 0) { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); rotDirection = 1; delay(20); } // If button is pressed - change rotation direction if (pressed == false & rotDirection == 1) { digitalWrite(in1, LOW); digitalWrite(in2, HIGH); rotDirection = 0; delay(20); } }
描述:首先,我们需要定义程序所需的引脚和一些变量。在设置部分,我们需要设置引脚模式和电机的初始旋转方向。在环路部分,我们开始读取电位器的值,然后将我们从它得到的值从0到1023,映射到PWM信号的值从0到255,或者是PWM信号的0到100%占空比。然后使用analogWrite()函数,我们将PWM信号发送到L298N板的Enable引脚,它实际上驱动电机。
接下来,我们检查是否按下了按钮,如果按下了按钮,我们就反过来设置Input 1和Input 2的状态来改变电机的旋转方向。按钮作为拨动按钮,每次按下按钮,都会改变电机的旋转方向。
Arduino机器人小车控制使用L298N电机驱动器
一旦我们学会了这个,现在我们可以建造我们自己的Arduino机器人汽车。这是电路原理图:
我们只需要2个直流电机,L298N电机驱动器,一个Arduino板和一个操纵杆的控制。在电源方面,我选择使用3个3.7V的锂离子电池,总共提供了11V。我用3毫米的胶合板做了底盘,用金属支架将电机连接到它上,将轮子连接到电机上,在前面连接一个转轮。

现在让我们看看Arduino代码,看看它是如何工作的。亚博88下载(在下面你可以找到完整的代码)
int xAxis = analogRead(A0);//读取操纵杆x轴int yAxis = analogRead(A1);//读取操纵杆y轴
在定义引脚之后,在循环部分,我们开始读取操纵杆X轴和Y轴的值。操纵杆实际上是由两个电位器组成,连接到Arduino的模拟输入端,它们的值从0到1023。当操纵杆保持在其中心位置时,两个电位器或轴的值都在512左右。

我们将增加一点公差,以470到550的值为中心。所以如果我们向后移动操纵杆的Y轴,数值低于470,我们将使用4个输入引脚将两个电机的旋转方向设置为向后。然后,我们将从470到0的下降值转换为增加的PWM值从0到255,这实际上是电机的速度。
//用于前进和后退控制的y轴if (yAxis < 470){//设置电机A向后digitalWrite(in1, HIGH);digitalWrite (in2、低);//设置电机B后向digitalWrite(in3, HIGH);digitalWrite (in4、低);//将下降的y轴读数从470到0转换为0到255的值的PWM信号增加电机速度motorSpeedA = map(yAxis, 470, 0, 0, 255);motorSpeedB = map(yAxis, 470, 0, 0, 255);}
类似地,如果我们向前移动操纵杆的Y轴,数值超过550,我们将设置电机向前移动,并将读数从550到1023转换为PWM值从0到255。如果操纵杆保持在它的中心,电机的速度将为零。
接下来,让我们看看如何使用X轴来控制汽车的左右。
//用于左右控制的x轴if (xAxis < 470){//将下降的x轴读数从470到0转换为增加的0到255的值int xMapped = map(xAxis, 470, 0,0,255);//向左移动-降低左电机速度,增加右电机速度motorSpeedA = motorSpeedA - xMapped;motorSpeedB = motorSpeedB + xMapped;//限制范围从0到255 if (motorSpeedA < 0) {motorSpeedA = 0;} if (motorSpeedB > 255) {motorSpeedB = 255;} }
因此,首先我们需要将X轴读数转换为从0到255的速度值。为了向左移动,我们使用这个值来降低左电机的速度并增加右电机的速度。在这里,由于使用了算术函数,我们使用了两个额外的“if”语句来限制电机速度的范围从0到255。

同样的方法用于向右移动汽车。
取决于施加的电压和电机本身,在较低的速度下,电机无法启动运动,并产生嗡嗡声。在我的情况下,如果PWM信号的值低于70,电机不能移动。因此,使用这两个if语句,我实际上限制了速度范围从70到255。最后,我们只是将最终的电机速度或PWM信号发送到L298N驱动器的使能引脚。
//防止低速时的嗡嗡声(根据你的电机进行调整。我的电机不能开始移动,如果PWM值低于值70)如果(motorSpeedA < 70) {motorSpeedA = 0;} if (motorSpeedB < 70) {motorSpeedB = 0;} analogWrite (enA, motorSpeedA);//将PWM信号发送给motor A analogWrite(enB, motorSpeedB);//将PWM信号发送给电机B
下面是Arduino机器人小车示例的完整代码:
/ * Arduino DC电机控制 - PWM |H-桥|L298N示例02 - Arduino机器人汽车控制由Dejan Nedelkovski,www.howtomechatronics.co亚搏手机版官方下载m * / #define ena 9 #define In3 #define eNB 10 #define In3 6 #define In4 7 int Motorspeeda = 0;int motorspeedb = 0;void setup() {pinMode(enA, OUTPUT);PINMODE(eNB,输出);pinMode(三机一体、输出);pinMode (in2、输出);Pinmode(In3,输出);PINMODE(IN4,输出); } void loop() { int xAxis = analogRead(A0); // Read Joysticks X-axis int yAxis = analogRead(A1); // Read Joysticks Y-axis // Y-axis used for forward and backward control if (yAxis < 470) { // Set Motor A backward digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // Set Motor B backward digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to 255 value for the PWM signal for increasing the motor speed motorSpeedA = map(yAxis, 470, 0, 0, 255); motorSpeedB = map(yAxis, 470, 0, 0, 255); } else if (yAxis > 550) { // Set Motor A forward digitalWrite(in1, LOW); digitalWrite(in2, HIGH); // Set Motor B forward digitalWrite(in3, LOW); digitalWrite(in4, HIGH); // Convert the increasing Y-axis readings for going forward from 550 to 1023 into 0 to 255 value for the PWM signal for increasing the motor speed motorSpeedA = map(yAxis, 550, 1023, 0, 255); motorSpeedB = map(yAxis, 550, 1023, 0, 255); } // If joystick stays in middle the motors are not moving else { motorSpeedA = 0; motorSpeedB = 0; } // X-axis used for left and right control if (xAxis < 470) { // Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value int xMapped = map(xAxis, 470, 0, 0, 255); // Move to left - decrease left motor speed, increase right motor speed motorSpeedA = motorSpeedA - xMapped; motorSpeedB = motorSpeedB + xMapped; // Confine the range from 0 to 255 if (motorSpeedA < 0) { motorSpeedA = 0; } if (motorSpeedB > 255) { motorSpeedB = 255; } } if (xAxis > 550) { // Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value int xMapped = map(xAxis, 550, 1023, 0, 255); // Move right - decrease right motor speed, increase left motor speed motorSpeedA = motorSpeedA + xMapped; motorSpeedB = motorSpeedB - xMapped; // Confine the range from 0 to 255 if (motorSpeedA > 255) { motorSpeedA = 255; } if (motorSpeedB < 0) { motorSpeedB = 0; } } // Prevent buzzing at low speeds (Adjust according to your motors. My motors couldn't start moving if PWM value was below value of 70) if (motorSpeedA < 70) { motorSpeedA = 0; } if (motorSpeedB < 70) { motorSpeedB = 0; } analogWrite(enA, motorSpeedA); // Send PWM signal to motor A analogWrite(enB, motorSpeedB); // Send PWM signal to motor B }
这就是本教程的全部内容,在下一个视频中我们将升级这个Arduino机器人车,添加一个蓝牙和广播设备启用智能手机和无线控制.
请在下面的评论部分问任何问题,不要忘记检查我的Arduino项目集合足彩网女欧洲杯.
非常好的教程,先生,请告诉我们如何使用4个发动机。,它的车轮两个电机将在平行也显示电线…,谢谢这个!!
这是一样的,只是把多个电机连接到同一个连接器上
你给出的第一个例子有一些错误,如果它们不被修复,它将无法工作:
1.在原理图中:外部电源接地也必须连接到arduino接地,而不是像你在那里表示的那样被隔离。
2.变量in1/in2是OUTPUT而不是INPUT。
3.(不是很重要)你从不使用buttonState变量;它可以被移除。
请您修改一下这个示例的代码/原理图好吗?
谢谢你!
谢谢你的赞扬。我已经更新他们。
fritz scheme的Arduino和L298N上没有显示L298D-Arduino ground shcematic我试过了,马达只是嗡嗡作响,直到我知道地面连接消失了。请修改它。
感谢所有这些教程,放轻松。
真的有帮助。谢谢你提供的信息。
这是一个伟大的项目。我喜欢它能很好地解释一切,而不仅仅是简单的代码和图表。
继续干得好!
谢谢!
我必须为一个学校项目做类似的事情,但我必须通过实现外部电压源将arduino的输出电压放大到25V。你知道我该怎么做吗?
您可以使用12V适配器加上LM2596 Buck转换器将12V转换为24V。
朋友você estar de parabéns pelo projeto。
Só我确认一下。您能使用arduino NANO吗?您是último código, é还是programa final ?你能告诉我你想要什么吗?
你好,朋友。
朋友你被计画的祝贺。
只是确认一些事情。我可以使用arduino NANO吗?最后的代码,就是最终的程序吗?或者我必须加入所有上述提到的其他人与后者?
谢谢,也谢谢兄弟。
是的,你可以使用nano。最后一个代码是最终的,另一个提到的只是解释,所有这些都包含在最后的最终代码中。
你好,谢谢你分享这个非常有用的教程。你能帮我编写代码,给出enA输出的一半(0~4.6V)吗?我试过改密码
" motorSpeedA = map(yAxis, 550, 1023, 0,255); " to " motorSpeedA = map(yAxis, 550, 1023, 0,120);
但是,它看起来像操纵杆的范围,所以很难顺利地增加速度。我需要电机以最低速度为1.4V,最大速度为2.1V(约78〜120)
嘿,如果你像我一样使用操纵杆,你可能会遇到平稳地提高速度的问题,操纵杆并不是很好。你可以尝试使用电位器而不是操纵杆,以使工作更平稳。
这是一个非常有用的网站,谢谢!!帮我完成了大学的设计项目。
谢谢!
我对这个项目有几个问题,德国。
您似乎在图片中使用了Arduino Uno,但在亚马逊的链接中,您已链接Arduino Mega。这有什么不同吗?可以使用吗?
还来自Arduino的操纵杆吗?我们可以使用任何操纵杆吗?
另外,我想要一个你用过的电线的链接。
我正在做这个项目,我只是不知道如何得到确切的组件,你已经使用。
另外,这个项目太棒了!谢谢!
您可以在这个项目中使用任何Arduino板。一个不同的操纵杆也应该工作。那些线就是所谓的跳线。
这是一个非常好的项目,我喜欢它。但我面临的挑战很少。H桥电机控制器使用nits驱动电机,除非我触摸MOSFET的散热器。我也试了另一个H桥,还是一样的事情。我使用12伏适配器供电的H桥。
尝试连接Arduino GND和电源适配器GND。
我可以使用这个IC l298驱动一个220v直流电机与PWM,或不?
谢谢你的帮助。
不,你不能!
谢谢你的信息,我想问,既然规格说5v到35v和最大电流为2A,这是否意味着它可能驱动一个24伏的线性驱动器,最大电流为0.65A或1.1A?如果我给H桥供电24伏?
好根据L298驱动表的总功耗为25W。所以,是的,在24伏的电压下,你可以用1A左右的电压来驱动一个马达。
谢谢你的工作,真的很有帮助。
一个问题:我需要连接pwm信号到哪个引脚?我似乎只有得到一个输出,如果我连接两个引脚的pwm信号,这对我没有意义。
此外,现在我在12V,但我将需要连接一个24v电机为其他项目。只需要去掉电源输入上方的跳线,然后用外部5v电源给L298供电,对吗?5V会在哪里连接到GND?谢谢!
谢谢。如果使用两个电机,那么你需要使用两个PWM引脚,因为他们是独立的通道,A和b。如果你使用24V,那么你必须为5V稳压器拆除跳线,因为24V对板上的稳压器来说太多了,但现在你也需要连接一个单独的5V电源驱动器上的+5V引脚,以便控制工作。
在我的模块上有78M05 LDO作为5V稳压器。根据数据表,输入电压高达35V。因此,限制是芯片的功耗。
那么为什么在12V以上的电压需要断开稳压器呢?
我错过了什么吗?
不,你是对的。数据表表明,78M05稳压器可以处理高达35V的输入电压。
我非常喜欢你的辅导课。你把事情解释得很好,我就真正理解了。你总是给我有用的信息。谢谢你!
谢谢!
非常好的解释,程序和优秀的图表。
加米尼·佩雷拉
加勒
斯里兰卡
谢谢!
如果我使用24V电源,我应该做什么调整?我手上的其他东西都和你的原理图一样。会损坏电路板吗?同样,感谢这篇有用的文章。
首先,电机必须在24V时额定电机,然后L298N模块上的车载5V稳压器必须能够处理24V,因此您可以使用5V为您的Arduino供电。
如果我只需要驱动1.5v直流电机,有什么建议?一个低电压的驱动器?
这取决于你想要实现什么样的控制。你在这里看到,为了控制旋转方向,你需要像H-Bridge这样的东西,或者为了控制速度,你需要PWM信号。对于这样一个低电压的电机,你可以使用1.5V电池供电,并简单地控制晶体管,如在第一个电路中所示。
很棒的文章和解释得很好的项目,感谢你的部署工作。
我将使用24V DC和4.5 a,按照规定,最大电流是2A。因此,我们如何处理这个问题?你知道其他的选择吗?
为了获得24V,我们可以使用12V适配器和LM2596 Buck转换器将12V转换为24V。
但我们怎样才能驾驭水流呢?
提前谢谢。
国立
谢谢。L298N肯定无法驾驭这么强大的发动机。也许你应该尝试建立你自己的电路,以驱动这个电机与更高额定的晶体管或mosfet,这将工作在类似的方式与这个驱动器。
德扬,
这是一个惊人的网站和出色的项目描述。我正在使用2个Syren控制器来驱动2-24V电机。Syren只需要1个引脚来控制FWD与Rev。所以我只使用“In1”和“In3”来控制方向。相信它适用于编码时,当我将操纵杆移动到左侧或右侧时,只有一个电机将旋转。基于代码的写入方式我希望电动机A同时向前旋转,电机B会向后转动左转?然而,当我向左移动操纵杆时,只有右电机将向前移动,然后当我将操纵杆移动到右侧时,只有左电机将向前移动?似乎xmapped代码无法正常工作?这里的任何输入都会有所帮助。谢谢..
嘿,谢谢凯莉!如果操纵杆只是左右移动,那是正常的,左右电机会向前移动,而另一个电机不会移动。我猜你的问题来自于我从操纵杆上加减数值的两行。在纯左或右运动的情况下,一个PWM值将是负的,但这并不意味着电机将向后旋转,它实际上意味着什么,没有PWM信号。从上面的例子中我们可以看到,为了改变旋转方向,我们实际上使用了L298N驱动器的In1和In2控制引脚。
我希望这就是你想问并理解的问题。
非常感谢您的回复。我其实不用L298N驱动程序。使用SYREN控制器,只需要一个引脚来控制前进和转速。
是的,试着理解这段代码到底在做什么;
// Move to left -减少左电机转速,增加右电机转速
motorSpeedA = motorSpeedA - xMapped;
motorspeedb = motorspeedb + xmapped;
当我读到这篇文章时,我在想汽车有能力拥有一个零转弯半径,因为当左或右移动操纵杆时,一个发动机将向前加速,而另一个发动机将向后加速。我实际上是通过以下方法做到的;
/ /右转
if (xAxis 550) {
//将电机设置为向后
digitalWrite(三机一体、低);
//设置电机B向前
digitalWrite (in3、高);
//将下降的x轴读数从470到0转换为0到255值的PWM信号,以增加电机速度
motorSpeedA = map(xAxis, 550, 1023, 0, 255);
motorSpeedB = map(xAxis, 550, 1023, 0, 255);
}
谢谢你-非常感谢你的帮助-非常感谢你的努力- @南非
德扬,出色的工作!非常感谢。它对我很有用。
你们有Arduino和L298N的控制代码吗?
非常感谢泰国。
谢谢!恐怕我没有这样的示例代码。
我来自哥伦比亚,非常感谢你花了这么多时间来解释这些问题。他们的视频和解释的质量是不可超越的,我仍然关注你们的频道。埃德加多·赫尔南德斯(谷歌翻译)
期待尝试这个——这将是我在“基础”(LED闪烁等)之后的第一个真正的arduino项目。我正在寻找所有的零件,但绊了一下,当它来到车轮-你能提供一个或两个链接,我可以得到他们吗?我不介意多花点钱买质量好的东西。
对所有这些仍然很新,但正如许多人说的,我真的很欣赏你教这些项目的方式!足彩网女欧洲杯
嗯,我使用的轮子,从一个玩具汽车,碰巧适合发动机轴完美。你可以使用带有塑料轮胎轮子的直流电机,我刚刚更新了这篇文章,并在零件列表部分包含了一个链接。
第一个图中连接到按钮的电阻欧姆值是多少?
它可以是1K到100K欧姆的任何东西。
伟大的解释!在第二个原理图上(你用电位器控制电机的速度,用按钮旋转),你能告诉电阻欧姆额定值吗?此外,arduino如何在5V连接器上供电?
连接以上变速电路。电机得到11.5伏没有改变速度。方向可以改变,所以按钮工作。坩埚将电压从0到5伏改变为A0。非常感谢您的任何建议
沃尔特
你应该把PWM信号发送到驱动器,确保你已经把这些引脚连接到Arduino上的一个有PWM能力的引脚。
太棒了,继续。
你好,我只是按照你的指示,但是为了控制一辆儿童摩托车,它有两个12v的马达,由12v电池运行,不幸的是,当我试图运行电机时,l293加热到80摄氏度以上,电机无法运行,只是一个颠簸。原因是什么呢?谢谢你!
那些马达可能会吸收更多的电流超出驾驶者的承受能力所以它很快就会发热。还要确保你再次检查所有的连接。
亲爱的先生
我开始学习adruino。
我有一个小项目。
我想用1电位器控制器直流电机A和B,但电机A左转,B右转。
当输出符号电位器为2.5电压时2电机停止。
输出符号电位器为2.5- 5电压时,电机A左转,电机B右转。速度由慢变快。
输出符号电位器为2.5- 0时,电机A右转,电机B左转。速度由慢变快。
你能帮我吗?
谢谢
这和在操纵杆的例子中解释的几乎一样。操纵杆轴只是一个简单的电位器。当它在中间休息时,它停留在2.5V,当它向前或向后,电压值向前到5V或向后到0V。
因此,您只需读取模拟输入,并使用映射功能,您可以根据您的需要调整接收值。
嗨,德扬,
伟大的教程!我已经修改了设置,有两个操纵杆控制器。机器人有几秒钟的反应,然后停止对操纵杆控制的反应。有什么问题吗?我一直在想可能是力量的问题但我试过的方法都没用。
谢谢你的帮助。
嘿,谢谢!是的,这可能是一个权力问题。你能给你的项目多一点信息吗,你用的是什么马达,你用的是什么电源?
伟大的教程!我只有一个小问题。
当我把两个12v直流电机连接到L298N和一个Arduino上时,左边的电机转速略快于右边的电机。这是一个连接问题,还是所有情况都是这样?顺便说一下,我没有使用PWM,所以两个电机应该运行在相同的速度。如果L298N内部的电源电路是串联电路而不是并联电路,那么一个电机接收的功率比另一个少是有意义的,但我不这么认为……
嘿,谢谢!我还没注意到这种行为。你只需要测试它与其他一些电机和/或其他L298N,以找出问题所在,它要么是电机或驱动器,但我不能确定。如果你知道了告诉我。
谢谢你出色的指导。我的问题涉及Greatisan DC 12v齿轮马达链接从你的网站。这意味着什么?一个方法吗?
“你也可以调整转速,但电机转速只能降低,不能提高。”
这个电机的最大转速是100转/分,所以你只能通过降低电压来降低速度。
我发现你是我的导师,我喜欢你解释事情的方式。
我做了你的第1个教程,电机以一个速度运行一段时间,然后在不按按钮的情况下迅速改变方向,然后一秒钟后它又自己改变方向。
速度控制很好。
我在H桥上使用7.1伏输入,Adruino被插入我的电脑。我将7.1伏电源(5节AA电池)的H桥接地到Adruino上的地面。如果我移开这个接地线电机就会停止运转。
谢谢你的建议
弗里茨
我不确定这是否有帮助,或者只是我的一个错误,但在你的图表中,你没有显示Arduino板的5v与L298N的5v之间的连接,我的意思是在电池的12v顶部。经过无数次的尝试和隔离问题,当我最终连接这两个电路工作正常,我的理论是,L298N“逻辑”设备需要电压(5v)工作,如果这是有意义的。我没有阅读之前的所有帖子,看看这是否已经引起了你的注意。
谢谢你!
亲爱的塞吉奥,
谢谢你的解决方案。
如果可以的话,请让我有进一步的澄清
1)“我的意思是在上面的12v从电池”,意味着电机的供电电压是12v ?该电源电压与跨接器(电压跨接器)的位置或拆除?
因为您已经将Arduino 5v电源连接到h桥逻辑5v,可以假设跳线引脚已被移除。
嗨,我有一个问题。前轮是由什么控制的?我的意思是,是什么让汽车左右行驶?
前轮不受控制。它只是遵循后面两个轮子的方向。这是一个转盘。