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

在这个Arduino教程中,我们将学习如何使用Arduino控制DC电机。我们很好地看一下用于控制DC电机的一些基本技术,并制作两个示例,我们将学习如何使用L298N驱动器和Arduino板控制DC电机。

概述


我们可以通过简单地控制电机的输入电压以及使用PWM信号来控制直流电机的速度。

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

PWM直流电机控制

PWM或脉冲宽度调制是一种技术,其允许我们通过以快速速率接通和关闭电力来调节到电子设备的电压的平均值。平均电压取决于占空比,或者信号的时间量与信号在单个时间段内关闭的时间量相比。

PWM工作原理-脉宽调制的工作原理亚博88下载

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

Arduino PWM直流电机控制电路图

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

h桥式直流电机控制

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

h桥结构是如何工作的亚博88下载

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

L298N驱动程序

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

L298N双h桥电机驱动器

让我们仔细看看L298N模块的引脚,并解释它是如何工作的。亚博88下载该模块有两个螺丝端子块用于电机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框图电流流动如何工作亚博88下载

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

Arduino和L298N.

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

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

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

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

yaboAG娱乐城披露:这些是附属链接。作为一名亚马逊助理,我的收入来自符合条件的购买。

Arduino Code.

Arduino代码如下:

/ * Arduino DC电机控制 -  PWM |H-桥|L298N  - 示例01由Dejan Nedelkovski,www.howtomech亚搏手机版官方下载atronics.com * / #define ena 9 #define In2 #define In2 7 #define按钮4 int rotdirection = 0;int按= false;void setup(){Pinmode(ENA,输出);PINMODE(IN1,输出);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的值,或者0到PWM信号的100%占空比。然后使用analogWrite()函数,我们发送PWM信号到L298N板的使能引脚,它实际驱动电机。

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

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

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

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

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

Arduino机器人汽车DIY底盘

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

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

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

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

我们会增加一点公差,以470到550为中心。所以如果我们向后移动操纵杆的Y轴,值低于470,我们将设置两个电机的旋转方向向后使用四个输入引脚。然后,我们将从470到0的下降值转换为从0到255的递增PWM值,这实际上是电机的速度。

// y轴用于向前和向后控制if (yAxis < 470){//设置电机向后digitalWrite(in1, HIGH);digitalWrite (in2、低);// Set Motor B backward 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的读数转换为从0到255的PWM值。如果操纵杆留在其中心电机速度为零。

接下来,让我们看看如何使用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;//如果(motorspeeda <0){motorspeeda = 0限制为0到255的范围;}如果(motorspeedb> 255){motorspeedb = 255;}}

所以,首先我们需要将X轴读数转换为从0到255的速度值。当向左移动时,我们使用这个值来降低左电机的速度并增加右电机的速度。这里,由于使用了算术函数,我们使用了两个额外的“if”语句将电机转速的范围限制在0到255之间。

Arduino机器人汽车左右控制

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

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

取决于施加的电压和电机本身,在较低的速度,电机不能开始移动,它产生嗡嗡声。在我的例子中,如果PWM信号的值低于70,电机就无法移动。因此,使用这两个if语句,我实际上将速度限制在70到255之间。最后,我们只需将最终的电机转速或PWM信号发送到L298N驱动器的使能引脚即可。

//在低速时防止嗡嗡声(根据你的电机调整)。我的电机无法启动,如果PWM值低于70)if (motorSpeedA < 70) {motorSpeedA = 0;} if (motorSpeedB < 70) {motorSpeedB = 0;} analogWrite (enA, motorSpeedA);//发送PWM信号到电机A模拟写(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,输出);PINMODE(eNB,输出);PINMODE(IN1,输出);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机器人车,通过添加a蓝牙广播设备支持智能手机和无线控制

请随意在下面的评论部分提出任何问题,不要忘记检查我的Arduino项目的收集足彩网女欧洲杯

69年响应

  1. Talha Arif.

    非常好的教程先生请展示我们如何使用4个电机I-e。,轮子与它有哪两个电机将平行也显示接线......,谢谢你!

    回复
  2. adilson.

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

    回复
      • RCA.

        fritzscheme的Arduino和L298N上没有显示L298D-Arduino ground shcematic。我试过了,电机只是嗡嗡作响,直到我了解到地线连接丢失了。请修改它。
        谢谢你所有这些教程......拿走它。

  3. 佩Stojanovski

    这是一个伟大的工程。我喜欢它能很好地解释一切,而不仅仅是简单的代码和示意图。
    再接再厉!

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

    回复
  5. Ranulfo de Oliveira E Silva

    朋友você estar de parabéns pelo projeto。
    Só我确认UMAS Coisas。Posso Utherizar o arduino nano?EssesúltimoCódigo,Éo计划决赛?ou tenho que juntar todos os outros一个cima mencionado com esseúltimo?
    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. Kasalian

    这是一个非常好的项目,我喜欢它。但是正面临着小挑战。除非触摸MOSFET的散热器,否则H Bridge Motor Controller正在使用NITS驱动电机。我也尝试另一个H桥仍然是一样的。我正在使用12伏适配器为H桥通电。

    回复
  10. Tetos.

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

    回复
  11. 内森

    感谢信息,我想问,因为规范说5V到35V和最大电流2a,这是否意味着它可以驱动为24伏的线性执行器,最大电流为0.65A或1.1A?如果我用24 volts为H桥电?

    回复
  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桥,或者为了控制速度你需要PWM信号。对于这样一个低压电机,你可以用一个1.5V的电池作为动力,简单地控制一个晶体管,就像第一个电路中所示的那样。

      回复
  17. 国立

    伟大的文章和良好的项目,感谢您的部署工作。
    嗯,我将使用24V直流4,5 a指定,最大电流是2A。那么,我们该如何应对呢?你知道有什么替代方案吗?
    要获得24 V,我们可以使用12V适配器加上LM2596降压转换器将12V转换为24V。
    但我们如何应对这股潮流呢?

    提前谢谢。
    国立

    回复
    • 德国

      谢谢。L298N肯定不能处理强大的马达。也许你应该尝试建立你自己的电路来驱动这个电机与更高的额定晶体管或mosfet将以类似的方式与这个驱动器工作。

      回复
  18. 凯利

    德扬,
    这是一个惊人的网站和出色的项目描述。我正在使用2个Syren控制器来驱动2-24V电机。Syren只需要1个引脚来控制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。

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

        //向左移动-降低左电机转速,增加右电机转速
        motorSpeedA = motorSpeedA - xMapped;
        motorspeedb = motorspeedb + xmapped;

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

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

        //设置电机B前进
        DigitalWrite(In3,高);

        //转换下降X轴读数,以便向后向0到0到0到25​​5的PWM信号,以增加电机速度
        Motorspeeda = Map(Xaxis,550,1023,0,255);
        motorSpeedB = map(xAxis, 550, 1023, 0,255);
        }

  19. Chatch

    德国,卓越的工作!非常感谢 。这对我很有用。
    你有任何Arduino和L298N控制代码直流电机使用远程控制如Flysky ?
    从泰国非常感谢。

    回复
  20. Edgardo Hernandez Meyer.

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

    回复
  21. 埃里克

    期待尝试这个-这将是我的第一个真正的arduino项目后的“基础”(LED闪烁等)。我想买所有的部件,但当它涉及到车轮时绊了一跤-你能提供一个或两个链接,我可以在哪里得到它们?我不介意多花一点钱买些质量好的东西。
    虽然对这一切仍然很陌生,但正如许多人所说的,我真的很感激您教授这些项目的方式!足彩网女欧洲杯

    回复
    • 德国

      我用的轮子是从一辆玩具车里拿出来的正好和马达的轴吻合得很好。你可以使用带有塑料轮胎的直流电机,我刚刚更新了这篇文章,并在零件列表部分包括了它们的链接。

      回复
  22. 塞萨尔

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

    回复
  23. 沃尔特。格洛弗

    连接上面的变速电路。电机的电压是11。5伏,速度不变。方向可以改变,所以按钮可以工作。锅将电压从0到5伏变化到A0。非常感谢您的建议
    沃尔特

    回复
    • 德国

      你应该向驱动器发送PWM信号,确保你已经将这些引脚连接到Arduino上的PWM引脚上。

      回复
  24. 你好,我只是按照你的指示来控制一辆儿童摩托车,它有两个12v电机,用12v电池运行,不幸的是,当我试图运行电机时l293加热到80度以上,电机无法运行,只是个傻瓜。什么原因呢?谢谢你。

    回复
    • 德国

      嘿,这些马达可能会吸收太多的电流超出司机的承受能力所以它很快就会升温。还要确保你仔细检查了所有的连接。

      回复
  25. 宣先生

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

    回复
    • 德国

      这与操纵杆的例子几乎相同。操纵杆的轴只是一个简单的电位器。在中间休息时保持2.5V,向前或向后时,电压值向前5V或向后0V。
      因此,您只需读取模拟输入,并使用map函数可以根据您的需要调整接收值。

      回复
  26. 瞎扯

    嗨,德扬,
    伟大的教程!我已经修改了设置,有两个操纵杆控制器。机器人在几秒钟内做出反应,然后停止对操纵杆的控制做出反应。问题是什么呢?我一直在想这可能是一个权力问题但我试过的所有方法似乎都不管用。
    谢谢你的帮助。

    回复
    • 德国

      嘿,谢谢!是的,这可能是一个权力问题。你能就你的项目提供更多的信息吗,你用的是什么马达,你用的是什么动力供应?

      回复
  27. Caden

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

    回复
    • 德国

      嘿,谢谢!我从没见过这种行为。你只需要测试它与一些其他的马达和/或其他L298N为了找出那是问题,它是马达或驱动器,但我不能确定。如果你知道了就告诉我。

      回复
  28. Ed Gennetten

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

    回复
    • 德国

      嗯,特定电机的最大速度为100 rpm,所以是的,你只能通过施加较低的电压来降低速度。

      回复
  29. 弗里茨Peyerl

    我找到了你的教程,喜欢你解释的东西。
    我完成了你的第1个教程,电机运行一段时间,然后快速地改变方向,不需要按按钮,一秒钟后,它就会自己改变方向。
    速度控制工作正常。
    我在H桥上使用一个7.1伏的输入,Adruino插入我的电脑。我将H桥从7.1伏电源(5节AA电池)接地到地面上的阿德鲁诺。如果我拆除这个接地线电机停止运行。

    谢谢你的建议
    弗里茨

    回复
  30. 塞吉奥

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

    回复
    • Dheenadayalan.

      亲爱的塞吉奥,
      谢谢你的解决方案。
      如果可能的话,请让我进一步说明
      1)“我的意思是在电池的12V顶部”,表示电机的电源电压为12 V?该电源电压与跳线(电压跳线)到位或移除?
      由于您已经将Arduino 5v电源连接到H-bridge logic 5v,因此可以假定跳线引脚已被移除。

      回复
  31. 哈纳

    嗨,我有个问题。前轮是由什么控制的?我的意思是,是什么导致汽车左右行驶?

    回复

发表评论

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

受到推崇的

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

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

受到推崇的

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

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

受到推崇的

用于初学者和爱好者的最佳3D打印机 -  3D打印

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