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

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

概述


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

直流电机转速控制输入电压

PWM直流电机控制

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

PWM工作原理 - 脉冲宽度调制它如何运作betway

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

Arduino PWM直流电机控制电路图

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

h桥式直流电机控制

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

h桥结构是如何工作的betway

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

L298N驱动程序

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

L298N双H桥电机驱动器

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

L298N引出线

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

我们可以看到这个集成电路产生了大约2V的电压降。例如,如果我们使用12V电源,电机端子处的电压大约是10V,这意味着我们无法获得12V直流电机的最大速度。

L298N电压降

接下来是逻辑控制输入。使能A和使能B引脚用于使能和控制电机的速度。如果跳线在这个引脚上存在,电机将被启用并以最大速度工作,如果我们移除跳线,我们可以连接一个PWM输入到这个引脚,以这种方式控制电机的速度。如果我们把这个引脚接在地上,电机就会失灵。

L298N框图电流流动如何工作betway

接下来,输入1和输入2销用于控制电动机A的旋转方向,以及用于电动机B的输入3和4。使用这些销我们实际控制L298N IC内的H桥的开关。如果输入1为低电平,输入2高电平电机将向前移动,反之亦然,如果输入1是高并且输入2低电平电机将向后移动。如果两个输入相同,电机将停止低或高。这同样适用于输入3和4和电机B.

Arduino和L298N.

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

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

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

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

必威外围提钱披露:这些是附属链接。作为一名亚马逊助理,我的收入来自符合条件的购买。

Arduino代码

这是Arduino代码:

/* Arduino DC Motor Control - PWM | H-Bridge | L298N - Example 01 by Dejan Nedelkovski, www.bet188官方网站HowToMechatronics.com */ #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 povalue = 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的值,或者0到PWM信号的100%占空比。然后使用analogWrite()函数,我们发送PWM信号到L298N板的使能引脚,它实际驱动电机。

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

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

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

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

我们只需要2个直流电机,L298N驱动器,一个Arduino板和一个操纵杆的控制。在电源方面,我选择了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,我们将设置两个电机的旋转方向向后使用四个输入引脚。然后,我们将从470到0的下降值转换为从0到255的递增PWM值,这实际上是电机的速度。

// Y轴用于向前和向后控制if(yaxis <470){//设置电机反向数字写词(In1,高);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转换为PWM值从0到255。如果操纵杆保持在它的中心,电机的速度将为零。

接下来,让我们看看我们如何在汽车的左右控制中使用X轴。

// x轴用于左右控制if (xAxis < 470){//将下降的x轴读数从470到0转换为增加的0到255值int xmap = map(xAxis, 470, 0,0,255);//移动到左边-减少左电机速度,增加右电机速度motorSpeedA = motorSpeedA - xMapped;motorSpeedB = motorSpeedB + xmap;//限制范围从0到255 if (motorSpeedA < 0) {motorSpeedA = 0;} if (motorSpeedB > 255) {motorSpeedB = 255;}}

同样,首先,我们需要将X轴读数转换为0到255的速度值。对于移动左侧,我们使用该值来降低左电机速度并提高右电机速度。这里,由于算术函数,我们使用两种附加的“if”语句将电机速度的范围限制在0到255。

Arduino机器人汽车左右控制

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

取决于施加的电压和电机本身,在较低的速度,电机不能开始移动,它产生嗡嗡声。在我的例子中,如果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 Motor Control - PWM | H-Bridge | L298N Example 02 - Arduino Robot Car Control by Dejan Nedelkovski, www.bet188官方网站HowToMechatronics.com */ #define enA 9 #define in1 4 #define in2 5 #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);//读取操纵杆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 }

这就是本教程的内容,下个视频中我们将升级这个Arduino机器人车,通过添加a蓝牙无线电设备支持智能手机和无线控制

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

69年响应

  1. Talha Arif.

    非常好的教程,先生,请告诉我们如何使用4个马达。,轮子与它的两个马达将是平行的,也显示接线…,谢谢这个!!

    回复
  2. Adilson

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

    回复
      • 美国广播公司

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

  3. 佩Stojanovski

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

    回复
  4. 我必须为学校项目做类似的事情,但我必须通过实现外部电压源放大Arduino的输出电压为25V。任何关于我该怎么做的想法?

    回复
  5. Ranulfo de Oliveira e Silva

    我的朋友用的是苯甲酸酯。
    所以我证实了你的观点。arduino NANO有什么用吗?最后的计划是什么?你将来会做什么?你将来会做什么?
    obrigado,evaleu amigo。

    朋友,恭喜你的计划。
    确认一些事情。我可以使用arduino NANO吗?那些最后的代码,是最终的程序吗?或者我必须加入所有以上提到的其他人与后者?
    谢谢,谢谢,伙计。

    回复
  6. 蒂格塔

    嗨,谢谢你分享这个非常有用的教程。你能帮助我的代码给一半的enA输出(0~4.6V)。我试图改变代码

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

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

    回复
    • Dejan Nedelkovski.

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

      回复
  7. 莎拉

    这是一个非常有用的网站,谢谢!!为我的大学设计项目保命。

    回复
  8. Abdulrahman Shaplel.

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

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

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

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

    我正在做这个项目,我只是不知道如何得到确切的组件你已经使用。

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

    回复
  9. Kasalian

    这是一个非常好的项目,我喜欢它。但是我没有遇到什么挑战。H桥电机控制器使用does nits驱动电机,除非我接触MOSFET的散热器。我也尝试了另一个H桥,还是一样的事情。Am使用12伏适配器为H桥供电。

    回复
  10. tetos

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

    回复
  11. 纳森

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

    回复
  12. 杰伊,

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

    回复
    • Dejan Nedelkovski.

      谢谢。如果使用两个汽车,那么您需要使用两个PWM针,因为他们是单独的通道,A和b,如果你使用24 v,那么你必须删除5 v调节器的跳投,因为24 v,车载监管机构,但现在还需要一个单独的5 v电源连接到+ 5 v销司机为了控制工作。

      回复
      • 卢卡斯

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

  13. 里克埃尼斯

    我非常喜欢你的教程。你把事情解释得很好,我明白了。你总是给我有用的信息。谢谢你!

    回复
  14. W. D. Gamni Perera

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

    回复
  15. 大卫

    如果我使用24V电源,我应该调整哪些调整?我所拥有的一切都与你的原理化相同。它会损坏董事会吗?另外,谢谢你的有用文章。

    回复
    • Dejan Nedelkovski.

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

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

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

    回复
    • 德国

      嗯,这取决于你想要实现的什么样的控制。您在此处看到用于控制旋转方向,您需要类似于H-Bridge的东西,或者控制您需要PWM信号的速度。至于这种低电压电机,您可以使用1.5V电池供电,并且只需控制晶体管,如第一电路所示。

      回复
  17. 蒲山

    很棒的文章和解释得很好的项目,感谢您所做的努力。
    嗯,我将使用24V直流4,5 a指定,最大电流是2A。那么,我们该如何应对呢?你知道有什么替代方案吗?
    为了获得24V,我们可以使用12V适配器加上一个LM2596 Buck转换器将12V转换为24V。
    但我们如何应对这股潮流呢?

    提前谢谢。
    蒲山

    回复
    • 德国

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

      回复
  18. 凯莉

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

    回复
    • 德国

      嘿,谢谢凯莉!如果操纵杆只向左或向右移动,这很正常,左边或右边的马达会向前移动,而另一个马达不会移动。我想你的问题来自于我对操纵杆的加减数值的两行。在纯左或右移动的情况下,其中一个PWM值将是负的,但这并不意味着电机将向后旋转,它实际上意味着什么,没有PWM信号。从上面的例子中我们可以看到,为了改变旋转方向,我们实际上使用了L298N驱动器的In1和In2控制引脚。
      我希望这就是你想要问和理解的。

      回复
      • 凯莉

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

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

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

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

        / /右转
        if (xAxis 550) {
        //设置电机A向后
        DigitalWrite(In1,低);

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

        //将下降的x轴读数从470到0转换为0到255的PWM信号值,以提高电机转速
        Motorspeeda = Map(Xaxis,550,1023,0,255);
        motorSpeedB = map(xAxis, 550, 1023, 0,255);
        }

  19. Chatch

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

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

    来自哥伦比亚的各位,非常感谢你们花这么多时间来解释这些问题。他们视频的质量和他们的解释是不可逾越的,我仍然关注你们的频道。埃德加多·埃尔南德斯(谷歌翻译)

    回复
  21. 埃里克

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

    回复
    • 德国

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

      回复
  22. 塞萨尔

    伟大的解释!在第二原理图(你控制电机的速度使用电位器和旋转使用按钮)你能告诉电阻欧姆额定值吗?此外,arduino如何在5V连接器上供电?

    回复
  23. 沃尔特格洛弗

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

    回复
    • 德国

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

      回复
  24. Hi, I just followed your instructions but to control a kid motor bike, which has two 12v motors, run by 12v battery, unfortunately when I try to run the motor the l293 heate up above 80deg, and motor won’t run , just a jerk only. What can be the reason. Thank you.

    回复
    • 德国

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

      回复
  25. 轩先生

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

    回复
    • 德国

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

      回复
  26. 瞎扯

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

    回复
    • 德国

      嘿,谢谢!是的,它可能是一个权力问题。你能在你的项目中有所了解更多信息,您使用的是哪些电机,您使用的是电源柔软的?

      回复
  27. Caden

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

    回复
    • 德国

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

      回复
  28. Ed Gennetten

    谢谢你的优秀教程。我的问题涉及从您网站连接的伟大DC 12V齿轮电机。这是什么意思;单程?
    “你也可以调整速度,但只能减少电机速度,不能升高。”

    回复
    • 德国

      嗯,特定的电机有一个100转的最大速度,所以是的,你只能通过应用较低的电压降低速度。

      回复
  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 5 V供应到H-Bridge Logic 5 V,因此可以假设移除跳线引脚。

      回复
  31. 刘荷娜

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

    回复

留下一个回复

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

推荐

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

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

推荐

8个最好的Arduino入门工具包,适合2019年初学者

初学者的8个最佳Arduino Starter Kits

推荐

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

最好的3D打印机为初学者和业余爱好者