Arduino直流电机控制教程- L298N | PWM | H-Bridge

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

概述


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

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

PWM直流电机控制

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

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

因此,根据电机的尺寸,我们可以简单地将Arduino PWM输出连接到晶体管的基部或MOSFET的栅极,并通过控制PWM输出来控制电动机的速度。低功耗Arduino PWM信号在MOSFET上开启和关闭栅极,通过该MOSFET驱动电动机。

Arduino PWM直流电机控制电路图

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

H桥直流电机控制

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

H-Bridge配置它是如何工作的亚博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直流电机控制- PWM | H-Bridge | L298N -示例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); } }

描述:因此,首先我们需要定义程序所需的引脚和一些变量。在设置部分中,我们需要设置电机的引脚模式和初始旋转方向。In the loop section we start by reading the potentiometer value and then map the value that we get from it which is from 0 to 1023, to a value from 0 to 255 for the PWM signal, or that’s 0 to 100% duty cycle of the PWM signal. Then using the analogWrite() function we send the PWM signal to the Enable pin of the L298N board, which actually drives the motor.

接下来,我们检查是否按下了按钮,如果按下了按钮,我们将通过反向设置Input 1和Input 2状态来改变电机的旋转方向。按下按钮作为切换按钮,每次按下按钮,都会改变电机的旋转方向。

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

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

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

我们所需要的只是2个直流电机,L298N驱动程序,Arduino板和A操纵杆的控制。在电源方面,我选择了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){//设置电机A向后的数字写入(in1, HIGH);digitalWrite (in2、低);//设置电机B向后digitwrite (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,电机无法移动。因此,使用这两个陈述我实际限制在70到255的速度范围内。最后,我们只需发送最终电机速度或PWM信号到L298N驱动器的启用引脚。

//防止低速嗡嗡声(根据您的电机调整。如果PWM值低于70),如果(Motorspeeda <70){motorspeeda = 0;}如果(motorspeedb <70){motorspeedb = 0;Amplwwrite(ena,motorspeeda);//将PWM信号发送到MOTOR A ADMWRITE(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 }

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

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

69回应

  1. Talha Arif.

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

    回复
  2. adilson.

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

    回复
      • RCA.

        L298D-Arduino地面Shematic未显示在Arduino和L298N中,在FrItzz方案中显示。我尝试过的电机嗡嗡声,直到我理解地面连接缺失。请修改它。
        谢谢你所有这些教程......拿走它。

  3. Petar Stojanovski.

    这是一个很棒的项目。我喜欢这一切如何解释,而不仅仅是一个普通的代码和原理图。
    保持良好的工作!

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

    回复
  5. Ranulfo de Oliveira e Silva

    Amigovocêestar deparabénspelo 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的操纵杆吗?我们可以使用任何操纵杆吗?

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

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

    P.S,这个项目很棒!非常感谢!

    回复
  9. kasali

    这是一个非常好的项目,我喜欢它。但是正面临着小挑战。除非触摸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高于12V的电压是有必要断开调节器?
        我错过了什么?

  13. 瑞克恩尼斯

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

    回复
  14. W. D. Gamni Perera

    非常好的解释,程序和优秀的图表。
    W. D. Gamini Perera
    加勒
    斯里兰卡

    回复
  15. 大卫

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

    回复
    • 德扬Nedelkovski

      首先,电机必须在24V时额定电机,然后L298N模块上的车载5V稳压器必须能够处理24V,因此您可以使用5V为您的Arduino供电。

      回复
  16. 尼古拉斯雷诺斯

    如果我只需要驱动1.5V直流电机,会推荐什么?较低的电压驱动器?

    回复
    • 德国

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

      回复
  17. 国立

    伟大的文章和良好的项目,感谢您的部署工作。
    嗯,我将使用4,5 A的24V DC。如规定,最大电流为2A。因此,我们如何填补这件事?你知道替代方案吗?
    要获得24 V,我们可以使用12V适配器加上LM2596降压转换器将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){
        //将电机设置为向后
        digitalWrite(三机一体、低);

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

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

  19. 壳牌

    德国,卓越的工作!非常感谢 。这对我很有用。
    您是否使用Flysky等遥控器具有DC电机的Arduino和L298N控制代码?
    从泰国非常感谢。

    回复
  20. Edgardo Hernandez Meyer.

    我在哥伦比亚,非常感谢你们花这么长时间来解释这些问题。他们的视频质量和他们的解释是不可逾越的,我继续关注你的频道。埃尔南德斯(Edgardo Hernandez)

    回复
  21. 埃里克

    期待尝试这一点 - 这将是我在“基础知识”(LED眨眼等)之后的第一个真正的Arduino项目。我希望购买所有部分,但是在轮到车轮时偶然发现 - 你可以为我能得到它们的地方提供一个链接还是两个?我不介意更多地花一点,因为质量很好。
    尽管对这一切仍然很陌生,但是,正如许多人所说,我真的很欣赏你教授这些项目的方式!足彩网女欧洲杯

    回复
    • 德国

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

      回复
  22. 塞萨尔

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

    回复
  23. 沃尔特。格洛弗

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

    回复
    • 德国

      嗯,您应该向驱动程序发送PWM信号,确保将这些引脚连接到Arduino上的PWM功能引脚。

      回复
  24. 嗨,我只是按照你的指示,但控制一个儿童摩托车,有两个12v电机,由12v电池运行,不幸的是,当我试图运行电机l293加热80度以上,电机不会运行,只是一个jerk only。原因是什么呢?谢谢你。

    回复
    • 德国

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

      回复
  25. 宣先生

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

    回复
    • 德国

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

      回复
  26. 瞎扯

    嗨Dejan,
    伟大的教程!我修改了设置有两个操纵杆控制器。机器人响应几秒钟,然后停止对操纵杆控制的反应。可能是什么问题?我一直在想这可能是一个权力问题,但我试过的任何东西似乎都没有工作。
    感谢您的帮助。

    回复
    • 德国

      嘿,谢谢!是的,这可能是一个权力问题。你能不能就你的项目提供一些更多的信息,你用的是什么电机,你用的是什么电源供应?

      回复
  27. c

    伟大的教程!我只是有一个小问题。
    当我将两个12V DC电机连接到L298N和Arduino时,左侧的电机略快地略微比右侧的电机。这是一个连接问题,还是对所有情况都这样?顺便说一下,我不使用PWM,所以两个电机都应该以相同的速度运行。如果L298N内的电源电路是串联电路而不是平行的电源,那么一个电机可以接收比另一个电动机更少的动力有意义,但我不这么认为......

    回复
    • 德国

      嘿,谢谢!好吧,我没有注意到这样的行为。您只需用其他一些电机和/或其他L298N测试它,以弄清楚这是问题,它是电机或司机,但我肯定无法知道。如果你发现,请告诉我。

      回复
  28. ED Gennetten.

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

    回复
    • 德国

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

      回复
  29. Fritz Peyerl.

    我找到了你的教程,喜欢你解释的东西。
    我完成了你的#1教程,电机运行了一段时间一段时间,而不是快速改变方向,而不是推动按钮,再次稍后它再次切换方向。
    速度控制工作正常。
    我在H Bridge上使用7.1伏输入,Adruino插入我的电脑。从Adruino的7.1伏电源(5 AA电池)将H桥接接地。如果我卸下此接地电缆停止运行。

    谢谢你的建议
    弗里茨

    回复
  30. 塞尔吉奥

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

    回复
    • Dheenadayalan

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

      回复
  31. 哈纳

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

    回复

留下一个回复

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

受到推崇的

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

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

受到推崇的

2019年针对初学者的8个最佳Arduino入门工具包

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

受到推崇的

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

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