Arduino直流电机控制教程- L298N | PWM | h桥

在这个Arduino教程中,我们将学习如何使用Arduino来控制直流电机。我们将看看一些控制直流电机的基本技术,并通过两个例子,我们将学习如何使用L298N驱动器和Arduino板控制直流电机。

概述


我们可以通过简单地控制电机的输入电压来控制直流电机的速度,最常用的方法是利用PWM信号。

直流电动机速度控制输入电压

PWM直流电机控制

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

PWM工作原理-脉宽调制如何工作betway

所以根据电机的大小,我们可以简单地将Arduino PWM输出连接到晶体管的基部或MOSFET的门上,通过控制PWM输出来控制电机的速度。低功率Arduino PWM信号打开和关闭MOSFET的门,通过该门驱动大功率电机。

Arduino PWM直流电机控制电路图

注意:Arduino GND与电机电源GND应连接在一起。

H桥直流电机控制

另一方面,为了控制旋转方向,我们只需要通过电动机逆向电流的方向,以及通过使用H桥来执行最常见的方法。H桥电路包含四个开关元件,晶体管或场效电晶体,电动机在中心形成H样配置。通过同时激活两个特定的开关,我们可以改变电流的方向,从而改变电动机的旋转方向。

H-Bridge配置它是如何工作的betway

因此,如果我们组合这两种方法,PWM和H桥,我们可以完全控制DC电机。有许多具有这些功能的直流电机驱动器,L298N是其中之一。

L298N驱动程序

该L298N是一个双h桥电机驱动器,允许速度和方向控制两个直流电机在同一时间。该模块可以驱动电压在5到35V之间的直流电机,峰值电流可达2A。

L298N双h桥电机驱动器

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

L298N引脚向上

这取决于电动机VCC上使用的电压。该模块具有板载5V调节器,可使用跳线启用或禁用。如果电机电源电压高达12V,我们可以启用5V调节器,5V引脚可用作输出,例如供电我们的Arduino板。但如果电机电压大于12V,我们必须断开跳线,因为这些电压会导致车载5V调节器损坏。在这种情况下,5V引脚将用作输入,因为我们需要将其连接到5V电源,以便IC正常工作。

我们可以在此请注意,该IC使电压下降约为2V。因此,例如,如果我们使用12V电源,电机端子的电压将是大约10V,这意味着我们将无法从12V直流电机中获得最大速度。

L298N电压降

接下来是逻辑控制输入。使能A和使能B引脚用于使能和控制电机的速度。如果一个跳线出现在这个引脚上,电机将被启用并以最大速度工作,如果我们去掉跳线,我们可以连接一个PWM输入到这个引脚,以那种方式控制电机的速度。如果我们将这个引脚连接到一个接地电机将被禁用。

L298N框图电流流程如何运作betway

接下来,输入1和2针用于控制电动机的转动方向,和电动机的输入3和4 b .使用这些别针我们实际上控制内的h桥的开关L298N IC。如果输入1是低,2是高马达会向前移动,反之亦然,如果输入1为高,输入2为低,电机将后退。如果两个输入相同,无论是低或高电机将停止。这同样适用于输入3、4和电机B。

Arduino和L298N.

现在让我们做出一些实际应用。在第一个例子中,我们将使用电位器控制电动机的速度,并使用按钮改变旋转方向。这是电路原理图。

Arduino和L298N电路图直流电机控制

因此,我们需要一个L298N驱动器,直流电机,电位器,按钮和Arduino板。

你可以从下面的链接获得这个Arduino教程所需的组件:

必威外围提钱披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

Arduino代码

下面是Arduino的代码:

/ * Arduino DC电机控制 -  PWM |H-桥|L298N  - 示例01由Dejan Nedelkovski,www.howtomechbet188官方网站atronics.com * / #define ena 9 #define In2 #define In2 7 #define按钮4 int rotdirection = 0;int按= false;void setup() {pinMode(enA, OUTPUT);pinMode(三机一体、输出);pinMode (in2、输出);PinMode(按钮,输入);//设置初始旋转方向DigitionWrite(In1,低);digitalWrite (in2、高); } void loop() { int potValue = analogRead(A0); // Read potentiometer value 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引脚,它实际上驱动电机。

接下来,我们检查我们是否已经按下按钮,如果这是真的,我们将通过设置输入1来更改电机的旋转方向,并反向输入2状态。按钮将作为切换按钮,每次按下它,都会改变电机的旋转方向。

Arduino机器人汽车控制使用L298N驾驶员

一旦我们学会了这个,现在我们可以建造我们自己的Arduino机器人汽车。这是电路原理图:

Arduino机器人汽车控制使用L298N驱动器电路原理图

我们所需要的只是2个直流电机,L298N驱动程序,Arduino板和A操纵杆的控制。在电源方面,我选择使用3个3.7V的锂离子电池,总共提供了11V。我用3毫米的胶合板做了底盘,用金属支架将电机连接到它上,将轮子连接到电机上,在前面连接一个转轮。

Arduino机器人汽车DIY底盘

现在让我们看看Arduino代码,看看它是如何工作的。betway(在下面你可以找到完整的代码)

int xAxis = analogRead(A0);//读取操纵杆x轴int yAxis = analogRead(A1);//读取操纵杆y轴

在定义引脚之后,在循环部分,我们开始读取操纵杆X轴和Y轴的值。操纵杆实际上是由两个电位器组成,连接到Arduino的模拟输入端,它们的值从0到1023。当操纵杆保持在其中心位置时,两个电位器或轴的值都在512左右。

Arduino机器人汽车操纵杆运动控制

我们将增加一点公差,以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轴用于左右控制(xaxis <470){//将拒绝x轴读数从470转换为0到0增加到0到25​​5值in 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。

Arduino机器人汽车左右控制

相同的方法用于将汽车移动到右侧。

相关:如何使用555定时器IC制作PWM直流电机速度控制器

取决于施加的电压和电机本身,在较低的速度下,电机无法启动运动,并产生嗡嗡声。在我的情况下,如果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机器人小车示例的完整代码:

/ / #define enA 9 #define in1 4 #define in2 5 #define enB 10 #define in3 6 #define in4 7 int motorSpeedA = 0; / / #defbet188官方网站ine 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);//读取操纵杆x轴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 }

因此,这是本教程的全部,在我的下一个视频中,我们将通过添加a升级这个arduino机器人车蓝牙广播设备启用智能手机和无线控制

请随意在下面的评论部分提出任何问题,不要忘记检查我的Arduino项目集合bet188me

69年响应

  1. Talha Arif.

    非常好的教程,先生,请告诉我们如何使用4个发动机。,它的车轮两个电机将在平行也显示电线…,谢谢这个!!

    回复
  2. Adilson

    你给出的第一个例子有一些错误,如果他们没有修复,它就会不起作用:
    1.在原理图中:外部电源接地也必须连接到arduino接地,而不是像你在那里表示的那样被隔离。
    2.输出不输入IN1 / IN2的变量。
    3.(不是很重要)你从不使用buttonState变量;它可以被移除。
    您是否愿意修改该示例的代码/原理图?
    谢谢你!

    回复
      • 美国广播公司

        fritz scheme的Arduino和L298N上没有显示L298D-Arduino ground shcematic我试过了,马达只是嗡嗡作响,直到我知道地面连接消失了。请修改它。
        谢谢你所有这些教程......拿走它。

  3. 佩Stojanovski

    这是一个伟大的项目。我喜欢它能很好地解释一切,而不仅仅是简单的代码和图表。
    继续干得好!

    回复
  4. 我必须为一个学校项目做类似的事情,但我必须通过实现外部电压源将arduino的输出电压放大到25V。你知道我该怎么做吗?

    回复
  5. Ranulfo de Oliveira E Silva

    Amigovocêestar deparabénspelo projeto。
    Só我确认一下。您能使用arduino NANO吗?您是último código, é还是programa final ?你能告诉我你想要什么吗?
    obrigado,evaleu amigo。

    朋友你被计画的祝贺。
    只是确认一些事情。我可以使用arduino NANO吗?最后的代码,就是最终的程序吗?或者我必须加入所有上述提到的其他人与后者?
    谢谢,谢谢哥们。

    回复
  6. Tirta

    嗨,谢谢您分享这个非常有用的教程。你能帮我用代码来提供ENA输出的一半(0〜4.6V)。我试图改变代码

    “Motorspeeda =地图(YAXIS,550,1023,0,255);”到“Motorspeeda =地图(YAXIS,550,1023,0,120);”

    但是,它看起来操纵杆的范围有点大,所以很难平稳地提高速度。我需要电机工作在最低速度1.4V,最高速度2.1v(约78~120)

    回复
    • 德扬Nedelkovski

      嘿,如果你像我这样做的那样使用了操纵杆,你可能会遇到一个问题,以便顺利增加速度,操纵杆不是那么好。您可以尝试使用电位计而不是操纵杆,以便更加顺畅。

      回复
  7. 莎拉

    这是一个非常有帮助的网站,谢谢!!真的在大学设计项目上拯救我的屁股。

    回复
  8. 阿沙基尔

    我有几个关于这个项目的问题,德扬。

    你在图片中似乎使用过Arduino UNO,但是在亚马逊的链接中,你链接了Arduino MEGA。这有区别吗?可以使用吗?

    操纵杆也是Arduino的吗?我们可以使用任何操纵杆吗?

    此外,我想获得您使用的电线的链接。

    我正在进行这个项目,我只是不知道如何获得所用的确切组件。

    另外,这个项目太棒了!谢谢!

    回复
  9. kasali

    这是一个非常好的项目,我喜欢它。但我面临的挑战很少。H桥电机控制器使用nits驱动电机,除非我触摸MOSFET的散热器。我也试了另一个H桥,还是一样的事情。我使用12伏适配器供电的H桥。

    回复
  10. Tetos.

    我可以使用该IC L298与PWM一起驱动220 V直流电机,还是没有?
    谢谢你的帮助。

    回复
  11. 内森

    谢谢你的信息,我想问,既然规格说5v到35v和最大电流为2A,这是否意味着它可能驱动一个24伏的线性驱动器,最大电流为0.65A或1.1A?如果我给H桥供电24伏?

    回复
  12. 杰伊,

    谢谢你的工作,真的很有帮助。
    一个问题:我需要连接哪个引脚来连接PWM信号?如果我将两个引脚连接到PWM信号,那么我似乎只会得到一个输出,这对我来说并不感。
    此外,现在我在12V,但我将需要连接一个24v电机为其他项目。只需要去掉电源输入上方的跳线,然后用外部5v电源给L298供电,对吗?5V会在哪里连接到GND?谢谢!

    回复
    • 德扬Nedelkovski

      谢谢。如果使用两个电机,则需要使用两个PWM引脚,因为它们是单独的通道,A和B.如果您使用24V,则必须卸下5V稳压器的跳线,因为24V太多了 -董事会调节器,但现在您需要将单独的5V电源连接到驱动器上的+ 5V引脚,以使控制进行控制。

      回复
      • 卢卡斯

        在我的模块上有78M05 LDO作为5V稳压器。根据数据表,输入电压高达35V。因此,限制是芯片的功耗。
        那么为什么在12V以上的电压需要断开稳压器呢?
        我错过了什么吗?

  13. 里克埃尼斯

    我非常喜欢你的教程。你很好地解释一下,我走开了真实的理解。你总是给我我真正使用的信息。谢谢你!

    回复
  14. W. D. Gamni Perera

    非常好的解释,程序和优秀的图表。
    加米尼·佩雷拉
    加勒
    斯里兰卡

    回复
  15. 大卫

    如果我使用24V电源,我应该做什么调整?我手上的其他东西都和你的原理图一样。会损坏电路板吗?同样,感谢这篇有用的文章。

    回复
    • 德扬Nedelkovski

      首先你的电机必须额定为24V,然后你的L298N模块上的车载5V调节器必须能够处理24V,所以你可以用5V给你的Arduino供电。

      回复
  16. 尼古拉斯·雷诺兹

    如果我只需要驱动1.5v直流电机,有什么建议?一个低电压的驱动器?

    回复
    • 德国

      这取决于你想要实现什么样的控制。你在这里看到,为了控制旋转方向,你需要像H-Bridge这样的东西,或者为了控制速度,你需要PWM信号。对于这样一个低电压的电机,你可以使用1.5V电池供电,并简单地控制晶体管,如在第一个电路中所示。

      回复
  17. 国立

    很棒的文章和解释得很好的项目,感谢你的部署工作。
    嗯,我将使用4,5 A的24V DC。如规定,最大电流为2A。因此,我们如何填补这件事?你知道替代方案吗?
    为了获得24V,我们可以使用12V适配器和LM2596 Buck转换器将12V转换为24V。
    但我们如何捆绑当前?

    提前谢谢。
    国立

    回复
    • 德国

      谢谢。L298N肯定无法驾驭这么强大的发动机。也许你应该尝试建立你自己的电路,以驱动这个电机与更高额定的晶体管或mosfet,这将工作在类似的方式与这个驱动器。

      回复
  18. 凯利

    德扬,
    这是一个惊人的网站和优秀的项目描述。我使用2个SYREN控制器驱动2-24v马达。SYREN只需要一个引脚来控制fwd和rev,所以我只使用“in1”和“in3”来控制方向。相信它的工作代码,然而,当我移动操纵杆向左或向右,只有一个发动机将旋转。基于代码是如何编写的,我希望电机A向前旋转,同时电机B将向后旋转为左转?然而,当我将操纵杆向左移动时,只有右电机将向前移动;当我将操纵杆向右移动时,只有左电机将向前移动?似乎xmapped代码不能正常工作?这里的任何输入都会有帮助。谢谢. .

    回复
    • 德国

      嘿,谢谢凯莉!好吧,如果操纵杆只移动,那是正常的,左侧或右电机将向前移动,另一个电机不会移动。I guess your question comes from the two lines where I add and subtract the values from the joystick.In the case of pure left or right movement, one of the PWM values will be negative, but that doesn’t mean the motor will rotate backward, it actually means nothing, no PWM signal. From the above example we can see that for that purpose, for changing the rotation direction we actually use the In1 and In2 control pins of the L298N driver.
      我希望这就是你想问并理解的问题。

      回复
      • 凯利

        非常感谢回复。我实际上没有使用L298N驱动程序。使用仅需要1个引脚的Syren控制器来控制FWD和Rev。

        是的,试着理解这段代码到底在做什么;

        // Move to left -减少左电机转速,增加右电机转速
        Motorspeeda = Motorspeeda - Xmapped;
        motorspeedb = motorspeedb + xmapped;

        当我读到这一点时,我认为这辆车能够具有零转向半径的能力,因为一个电机将在向左或向左移动操纵杆时向前加速向前。我实际上通过执行以下操作来实现了这一点;

        / /右转
        if (xAxis 550) {
        //设置电机A向后
        digitalWrite(三机一体、低);

        //将电机b向前设置
        DigitalWrite(In3,高);

        //将下降的x轴读数从470到0转换为0到255值的PWM信号,以增加电机速度
        Motorspeeda = Map(Xaxis,550,1023,0,255);
        motorspeedb =地图(Xaxis,550,1023,0,255);

  19. 壳牌

    德国,卓越的工作!太感谢了 。这对我很有用。
    你们有Arduino和L298N的控制代码吗?
    非常感谢泰国。

    回复
  20. 埃德加多·埃尔南德斯梅尔

    来自哥伦比亚,非常感谢您所有这些都致力于解释这些问题。他们的视频质量及其解释是不可堵车的,我仍然对您的渠道殷勤。Edgardo Hernandez(谷歌翻译)

    回复
  21. 埃里克

    期待尝试这个——这将是我在“基础”(LED闪烁等)之后的第一个真正的arduino项目。我正在寻找所有的零件,但绊了一下,当它来到车轮-你能提供一个或两个链接,我可以得到他们吗?我不介意多花点钱买质量好的东西。
    所有这一切仍然很新,但是,尽管有许多人所说,我真的很感激你教导这些项目的方式!bet188me

    回复
    • 德国

      好吧,我使用的车轮从一个玩具汽车取出的地方,这恰好穿得很完全适合电机轴。您可以使用带有塑料轮胎轮的直流电机,我刚刚更新了帖子并将其包含在零件列表部分中的链接。

      回复
  22. 塞萨尔

    伟大的解释!在第二个原理图(使用电位计控制电机的速度并使用按钮旋转),您可以告诉电阻器欧姆评级吗?还如何在5V连接器上提供电源?

    回复
  23. 沃尔特。格洛弗

    连接电路以上以上变速。电机得到11.5伏,速度没有变化。可以改变方向,因此按钮工作。该罐将电压从0到5Volts变化到A0。任何建议都非常感谢
    沃尔特

    回复
    • 德国

      你应该把PWM信号发送到驱动器,确保你已经把这些引脚连接到Arduino上的一个有PWM能力的引脚。

      回复
  24. 你好,我只是按照你的指示,但是为了控制一辆儿童摩托车,它有两个12v的马达,由12v电池运行,不幸的是,当我试图运行电机时,l293加热到80摄氏度以上,电机无法运行,只是一个颠簸。原因是什么呢?谢谢你!

    回复
    • 德国

      嘿,那些电机可能比司机可以处理更多的电流,所以它很快就会加热。另请确保仔细检查所有连接。

      回复
  25. 宣先生

    尊敬的先生
    我开始学习adruino。
    我有一个小项目。
    我想用1电位器控制器直流电机A和B,但电机A左转,B右转。
    输出符号电位计为2.5电压2电机停止。
    输出符号电位器为2.5- 5电压时,电机A左转,电机B右转。速度由慢变快。
    当输出符号电位计为2.5- 0电压电机时,右转,电机B向左转。速度由慢变快。
    你能帮助我吗。
    谢谢

    回复
    • 德国

      嗯,几乎与用操纵杆的例子中解释的相同。操纵杆轴不别的只是一个简单的电位计。当在中间休息时,它保持在2.5V时,当它向前或向后时,电压值向前移动到5V或向后到0V。
      因此,您只需读取模拟输入,并使用映射功能,您可以根据您的需要调整接收值。

      回复
  26. 瞎扯

    嗨Dejan,
    伟大的教程!我已经修改了设置,有两个操纵杆控制器。机器人有几秒钟的反应,然后停止对操纵杆控制的反应。有什么问题吗?我一直在想可能是力量的问题但我试过的方法都没用。
    谢谢你的帮助。

    回复
    • 德国

      嘿,谢谢!是的,这可能是一个权力问题。你能给你的项目多一点信息吗,你用的是什么马达,你用的是什么电源?

      回复
  27. Caden

    伟大的教程!我只是有一个小问题。
    当我把两个12v直流电机连接到L298N和一个Arduino上时,左边的电机转速略快于右边的电机。这是一个连接问题,还是所有情况都是这样?顺便说一下,我没有使用PWM,所以两个电机应该运行在相同的速度。如果L298N内部的电源电路是串联电路而不是并联电路,那么一个电机接收的功率比另一个少是有意义的,但我不这么认为……

    回复
    • 德国

      嘿,谢谢!我还没注意到这种行为。你只需要测试它与其他一些电机和/或其他L298N,以找出问题所在,它要么是电机或驱动器,但我不能确定。如果你知道了告诉我。

      回复
  28. Ed Gennetten

    谢谢你出色的指导。我的问题涉及Greatisan DC 12v齿轮马达链接从你的网站。这意味着什么?一个方法吗?
    “你也可以调整转速,但电机转速只能降低,不能提高。”

    回复
  29. Fritz Peyerl.

    我找到了你的教程,喜欢你解释的东西。
    我做了你的第1个教程,电机以一个速度运行一段时间,然后在不按按钮的情况下迅速改变方向,然后一秒钟后它又自己改变方向。
    速度控制很好。
    我在H桥上使用7.1伏输入,Adruino被插入我的电脑。我将7.1伏电源(5节AA电池)的H桥接地到Adruino上的地面。如果我移开这个接地线电机就会停止运转。

    谢谢你的建议
    弗里茨

    回复
  30. 塞吉奥

    我不确定这是否有用或只是漏出的错误,但在您的图表中,您不会在L298N中从Arduino Board到5V之间的连接到5V,我的意思是在电池的12V顶部。在尝试无数次并隔离问题后,当我终于连接那两个电路时,我的理论是L298N“逻辑”设备需要电压(5V),如果这是有意义的话。我没有阅读以前的所有帖子,以了解这是否已经引起了你的注意。
    谢谢你!

    回复
    • Dheenadayalan

      亲爱的塞尔吉奥,
      谢谢你的解决方案。
      如果有可能,请让我进一步澄清
      1)“我的意思是在电池的12V顶部”,表示电机的电源电压为12 V?该电源电压与跳线(电压跳线)到位或移除?
      因为您已经将Arduino 5v电源连接到h桥逻辑5v,可以假设跳线引脚已被移除。

      回复
  31. 刘荷娜

    嗨,我有一个问题。什么是前轮控制?我的意思是什么导致汽车向右和左转?

    回复

发表评论

您的电子邮件地址不会被公开。

推荐

2019年初学者和爱好者的最佳进入级示波器

初学者和爱好者最好的示波器

推荐

2019年初学者的8个最佳Arduino Starter Kits

8个最好的arduino初学者工具包

推荐

最佳3D打印机为初学者和爱好者- 3D打印

最好的3d打印机为初学者和爱好者