DC Motor Control with an H-Bridge and Arduino (Lesson #17)

Поделиться
HTML-код
  • Опубликовано: 4 янв 2025

Комментарии • 98

  • @chitobalazo
    @chitobalazo Год назад +6

    Thanks for the video, now understanding the H bridge which is L293D incorporated in controlling a DC motor. Thank you very much.

  • @rubaiyatfoyez
    @rubaiyatfoyez 8 месяцев назад

    I don't have any words to thank you! Just can't express how helpful this video has been.

  • @CombatWombat-q9w
    @CombatWombat-q9w 10 месяцев назад +2

    your videos are amazing they are fun and infomativ. I finally understand everything thanks

  • @whatsupbudbud
    @whatsupbudbud Год назад +4

    Thanks for the video! Didn't know it's possible to test out arduino stuff in software. Will be useful especially when messing with batteries and condensers which can blow up.

  • @chenkats7540
    @chenkats7540 9 месяцев назад +2

    Thank you, you helped me a lot :)

  • @windrago
    @windrago 4 месяца назад

    love this way of teaching those basics!

  • @skipsmessyworkbench
    @skipsmessyworkbench 7 месяцев назад +10

    The one thing that you should teach students is that with a switch, you should always make/break the hot side, (the plus voltage side) and never switch the ground. This is a safety issue and if your students go out into the world they will be forced to always break the hot side. Therefore, one side of a switch should be wired to +Voltage, the other side of the switch should have a 10K ohm resistor to ground and the arduino digital pin is wired to the junction of the resistor and the switch. With this configuration the wiring meets the NEC in all 50-states. I know in the hobby world it doesn't matter, but you never know if your students are working, or will be working in industry.

    • @vojtechkment2956
      @vojtechkment2956 4 месяца назад +1

      Does NEC really cover the design of low voltage devices, here 5V DC?
      In Electronics, it is quite common that signals are provided inverted, ie. Negation(RESET), Negation(ChipSelect), etc. The customs can vary significantly.
      Here the author programmatically enables the built-in resistor within Arduino board which pulls the input value towards +5V (logical 1), hence one has to connect the input via a switch to zero potential (logical 0).
      It teaches the student that he can (1) save one external resistor and one wire connection, ie. the wiring is simpler and it also teaches (2) to lower the cost of your design, plus that (3) the input can have the inverted value (Logical 1 = switch OFF [a default], Logical 0 = switch ON).
      Basic Arduino Starter Kit still contains even the wiring which uses your design (resistor, and a positive logic of a switch). Just for the completness. But any advanced user will use the approach used here.

    • @skipsmessyworkbench
      @skipsmessyworkbench 4 месяца назад

      @@vojtechkment2956 The NEC talks about low voltage wiring. They typically start at 24Vac/dc and up. I am very aware of the Arduino built-in resistors and I don't see any problem using them; however, the way safety standards are heading I would start teaching students, when using a mechanical switch, to always break the hot or high side; the voltage side. Even at lower voltages it's still the safest way so that the user is always on the ground side.

  • @max_imus
    @max_imus 5 месяцев назад

    Thank you very much. You explained a very complicated subject so perfectly ...I understand it now :)

  • @tedbastwock3810
    @tedbastwock3810 8 месяцев назад +1

    Absolutely fantastic video. I will be experimenting with doing this with Arduino Uno and also a PIC. Thank you!!!!

  • @narniabusiness7810
    @narniabusiness7810 Месяц назад

    Thank you so much for your videos!!!

  • @johndiamond2548
    @johndiamond2548 Год назад +1

    Great work! :)

  • @atlas5097
    @atlas5097 11 месяцев назад +2

    This video is great but I cant really wrap my head around how the motor is connected to the breadboard. I tried the code after putting everything in place, double checked the wires and it didnt work but idk if my motor is conected correctly. I also was wondering what arduino version you use.

    • @Science.Buddies
      @Science.Buddies  11 месяцев назад +1

      If you're having trouble we recommend starting at the beginning of our Arduino tutorial playlist (linked in the description) and also watching our How to Use a Breadboard video: ruclips.net/video/6WReFkfrUIk/видео.htmlsi=byMxk5OcEK-xG2Df. The H-bridge is a more complicated circuit so it will be challenging if this is the first thing you're trying to do. Our videos show the Arduino UNO R3.

  • @ki3aki0
    @ki3aki0 Год назад +1

    Thanks a lot it realy helped me

  • @lovemadeinjapan
    @lovemadeinjapan Год назад +2

    Thanks, I've some questions:
    Is hooking up 4 GND pins needed? They are for cooling, and the clamps in the board will cool them. The 6V input is also a single pin, and it has the same current going through.
    Do you need to set the pins as output? As there are a bunch of power transistors in the IC, won't they work on the default low-power output? Or do they need full 20mA to trigger?
    Can you set Tinkercad to put wires on top, now they dive under the IC which looks very weird.
    Does a LEGO motor work the same? How to change speed/power in code?

    • @Science.Buddies
      @Science.Buddies  Год назад

      Hi - you have a lot of questions here, more than we can address in a single RUclips comment. You may be able to get more answers on the official Arduino forums or forums dedicated to electronics like on Reddit or Stackexchange.

  • @Dan-nm2ne
    @Dan-nm2ne 10 месяцев назад

    Can you explain why do you need a common ground? 9:45

  • @Sander-fx1mb
    @Sander-fx1mb 8 месяцев назад +1

    You mentioned that we weren't going to use a 2nd motor, if I wanted to use 2 motors how would I do that?

  • @hiryu6672
    @hiryu6672 11 месяцев назад +1

    Thanks, this worked for me.

  • @pankajagarwal5534
    @pankajagarwal5534 Месяц назад

    Video is just great ! , can you indicate what should be the value of potentiometer.

  • @sagetk2981
    @sagetk2981 Год назад +2

    This helped me a lot in my project. Would be nice if you included the link to the project

    • @Science.Buddies
      @Science.Buddies  Год назад

      This is a general tutorial, but we have many specific projects on our site that use this circuit, such as www.sciencebuddies.org/science-fair-projects/project-ideas/Robotics_p042/robotics/arduino-self-driving-car

  • @tromboneChamp-xu9vs
    @tromboneChamp-xu9vs 2 месяца назад +1

    is it fine if a use a 9V Battey instead, or will it burn the circuit?

    • @Science.Buddies
      @Science.Buddies  2 месяца назад

      You always need to look at the datasheet and maximum voltage ratings for the parts you are using in order to answer that question.

    • @tromboneChamp-xu9vs
      @tromboneChamp-xu9vs 2 месяца назад

      @@Science.Buddies ok, ty

  • @YeahheheBoi
    @YeahheheBoi Месяц назад

    Hey i know its late but can i ask a question, i followed your instruction step step and it works here's the question though my arduino is plugin to the computer as should be but the still motors run even though the external battery is not connected why is that?

    • @Science.Buddies
      @Science.Buddies  Месяц назад +1

      You probably have something wired incorrectly on your circuit such that the motors are being powered by the 5V from the Arduino. We recommend asking for more help in the official Arduino forums. People will need to see pictures of your breadboard in order to help.

  • @ruhwezaemmanuel9826
    @ruhwezaemmanuel9826 6 месяцев назад

    this is cool

  • @brajlecz9485
    @brajlecz9485 3 месяца назад

    awesome video, really helped me a lot! Just a question tho... couldnt this work wtihout arduino? just using a another supply instead of it? We would be using the buttons just for switching voltage to the input pins on L293D

    • @Science.Buddies
      @Science.Buddies  3 месяца назад +1

      Yes, you can use an H-bridge to switch the direction of a motor without an Arduino if you just want manual hardware control. For software control and more advanced tasks (e.g. steering a robot to react to sensors) you need the Arduino.

    • @brajlecz9485
      @brajlecz9485 3 месяца назад

      @@Science.Buddies Great. Thank you !

  • @ishtiiyak7000
    @ishtiiyak7000 Месяц назад

    Sir ,
    I have exact same mini project.
    but we have to use a 15 V supply
    so which motor should I use And is there anything that I need to worry about?

    • @Science.Buddies
      @Science.Buddies  Месяц назад

      Hi - we recommend asking this question on the official Arduino forums.

  • @mr.biscuits2160
    @mr.biscuits2160 7 месяцев назад

    Wonderful vid ! I'm gonna use it to create a functioning RC-boat :D I do have a question though - In the previous video u showed that, when using a MOSFET instead of an H-Bridge, you gotta use a capacitor in order to reduce electric noise. Is it still necessary with an H-Bridge ? Would love to know bcs I'm applying an IR receiver to send the signal to the enable pin, so background noise will mess with the circuit/logic.

    • @choppertonytony3702
      @choppertonytony3702 3 месяца назад

      Hey, im also planning on building an RC boat. How were you able to communicate with the boat tho? Im struggling in that aspect as well as what material did you build it with? Did you have a “steering” system or just used the motors to turn? Sry for the list of questions :D

  • @gliderjewels
    @gliderjewels 5 месяцев назад

    Do you need any resistors or anything? Thanks!

    • @Science.Buddies
      @Science.Buddies  5 месяцев назад +1

      Not for this circuit!

    • @gliderjewels
      @gliderjewels 5 месяцев назад

      @@Science.Buddies if I power it with a 24v 3a power supply would I need any? What would cause me to need them? I plan on using 24v dc motor and adding an OLED display with some extra functions, it will be my first project

    • @Science.Buddies
      @Science.Buddies  5 месяцев назад

      Hi - if you need detailed help, we recommend asking in a dedicated electronics forum like the official Arduino forums, or a site like Reddit or Stackexchange. We are unable to help with individual projects in RUclips comments.

  • @ardenpoklar8198
    @ardenpoklar8198 Год назад

    And also is it possible to toggle direction with the button instead and have the speed controlled by the potentiometer?

  • @eftihisprotop.9073
    @eftihisprotop.9073 8 месяцев назад

    can you make a dc motor spin with a joystick using the same chip ? i cant figure it out.
    my moter wont stop spinning

  • @Кіріл-ж5г
    @Кіріл-ж5г 4 месяца назад

    Hi! I'm currently building machine, which will be using 4 separate dc motors with a wheel on each. Is it possible to connect 1st and 9th ports of L293 (speed regulators) to the single PMW so that both motors would have the same speed?

  • @Kult647
    @Kult647 6 месяцев назад

    can this be used for electromagnets as well?

    • @Science.Buddies
      @Science.Buddies  6 месяцев назад

      Yes, it can be used for other inductive loads like electromagnets and solenoids.

  • @walkingl0089
    @walkingl0089 2 месяца назад

    Hi, if I wanted the motor to continue running after just pressing the button (not holding it down) how could I modify this code to accomplish this?

    • @Science.Buddies
      @Science.Buddies  2 месяца назад

      Hi - we recommend asking this question in the official Arduino forums.

  • @destroyerofleanus2066
    @destroyerofleanus2066 Год назад

    Hey, great video. But I am confused, whenever I hook up a small DC motor to this circuit the motor doesn't work. The motor works when I take it off and plug it directly to the battery pack. Do I just need a bigger battery?

    • @Science.Buddies
      @Science.Buddies  Год назад

      To clarify, you need to have Arduino code running for this circuit to work, the motor won't just spin if you plug it directly into the H bridge.

    • @destroyerofleanus2066
      @destroyerofleanus2066 Год назад

      Yes, the circuit did have code running, but I found that if I give it a little push it will spin slowly. I think I just need a bigger battery.

  • @BingchaoWang-d6w
    @BingchaoWang-d6w 11 месяцев назад

    Hi,thanks for your video.I have some questions:If i use the switch to control the motor ,when i push the first switch button it can clockwise rotation,but when i push it again,it can not stop. And then i push the second switch button------- it makes clockwise rotation slowly but can not counterclockwise rotation, and then if i do not push the second button,it still clockwise rotation without slowly condition.I do not know why..Could you please help me ?

    • @BingchaoWang-d6w
      @BingchaoWang-d6w 11 месяцев назад

      Maybe the HIGH and Low is not clear in the code,and when i modify a little code ,it works.....

  • @sulfurmolecule
    @sulfurmolecule Год назад

    Hey, I don't mean for it to look like I'm asking for tech support, but I decided it worth asking anyways. In following along with the video, I got stuck when I went to try to add the two buttons in by myself. I then tried to just copy why you had done, but the motor would just run at 83rpm without any input, and would only change (to 0) while holding down but2pin. All this on Tinkercard by the way. Is it possible for you to tell me what I'm doing wrong?

    • @Science.Buddies
      @Science.Buddies  Год назад +1

      Hi - if you're a student doing a science project, you can ask for help in the Ask an Expert forums on our website: www.sciencebuddies.org/science-fair-projects/ask-an-expert-intro, which is monitored by volunteers. Unfortunately we're a small organization and don't have the capacity to provide tech support beyond that, but we'd recommend starting earlier in our Arduino playlist (linked in the description) and check out the video about buttons before you move on to motors and H-bridges.

  • @GameOver-cp5nt
    @GameOver-cp5nt Месяц назад

    I'm unable to find the datasheet of my ic which is l293d 99 wav vw mys 99 995 and with everything connected I recive less than 3v at the motor output. What should i do?

    • @Science.Buddies
      @Science.Buddies  Месяц назад

      Hi - we are unable to provide detailed troubleshooting help in RUclips comments, we recommend asking your question on the official Arduino forums or a dedicated electronics forum like Stackexchange.

  • @abdullaherensimsek2302
    @abdullaherensimsek2302 3 месяца назад

    Bro ı have a question for u ı cant understand from datasheet how can ı add one more motor ı've understood the code part but ı am not sure aboıt the cables.Can u help me

    • @Science.Buddies
      @Science.Buddies  3 месяца назад

      Hi - we are unable to provide help in RUclips comments, you could try asking for help in the official Arduino forums.

  • @Txtumi
    @Txtumi Год назад

    Is there an alternative way to power this like with a 9 volt battery to the Arduino

    • @Science.Buddies
      @Science.Buddies  Год назад

      In general you don't want to use a 9V battery to power motors as they will drain the battery very quickly. Check out this video to learn more about your options for powering Arduino projects: ruclips.net/video/I7MrL5Q7zvY/видео.htmlsi=zagNwvLt5MSBBGNQ

  • @TELUGUEDITOR14
    @TELUGUEDITOR14 5 месяцев назад

    Hey , i need to ask you something, so im doing a project which involves of linear motion of back and forth continuous without pressing buttons is it possible.... Could you please reply me it urgent ...🥺🥺🥺...

    • @Science.Buddies
      @Science.Buddies  5 месяцев назад

      Hi - we can't provide help with individual projects like this in RUclips comments, we recommend asking on the official Arduino forums if you need help.

  • @kennethkindrich3114
    @kennethkindrich3114 Год назад

    Im looking to see how to control a dc motor without buttons or switches. Just coded movement. How do i do this? Tutorials??

    • @Science.Buddies
      @Science.Buddies  Год назад

      Hi - we recommend checking out our full Arduino tutorial playlist. You can control the motor's movement using hard-coded digitalWrite commands and delays, just like you would when blinking an LED as covered earlier in the playlist. This does not require any buttons or switches as inputs.

  • @ardenpoklar8198
    @ardenpoklar8198 Год назад

    Hey, this is a fantastic video! I do need a hand with something though. I am trying to use this circuit to control a vinyl player (conceptually). I have allocated a button for forward and reverse but I want to use two potentiometers. One at max speed would turn the disc at 33 revolutions per minute and one would turn it at 45 revolutions per min. How do I map both with the same speed function? or what do i even do hahaha thanks :)

    • @Science.Buddies
      @Science.Buddies  Год назад

      Hi - unfortunately we can't provide support to write code for individual projects like this. We have many other videos in our tutorial series, including earlier videos specifically about buttons and potentiometers that may help, but putting it all together to do exactly what you want is up to you :-). You may be able to get help with your code on the official Arduino forums.

  • @ArnodeLange
    @ArnodeLange 5 месяцев назад

    is it possible that when you press the button it slowly starts and picks up speed...

    • @Science.Buddies
      @Science.Buddies  5 месяцев назад

      Yes, this is possible - we can't provide coding help in RUclips comments, but you could ask for help in the official Arduino forums.

  • @thatonefishycat7558
    @thatonefishycat7558 Год назад

    Can u make a tutorial on how to use a motor driver

    • @Science.Buddies
      @Science.Buddies  Год назад

      We don't currently have plans for a separate motor driver tutorial, but many motor driver boards are simply breakout boards for an H-bridge like the L293D.

  • @ragjnmusic8765
    @ragjnmusic8765 Год назад

    So can this be applied to 2000 rpm 12 V motor too?

    • @Science.Buddies
      @Science.Buddies  Год назад

      The same concept applies but you will need to check the datasheet for your motor to see how much current it requires, and make sure the H bridge you purchase can handle that much current.

    • @ragjnmusic8765
      @ragjnmusic8765 Год назад

      ​@@Science.Buddies so my plan is to first try and write the code for a small simple motor
      Then I can use a large motor also I got some recommendations to use a l298n module

    • @Science.Buddies
      @Science.Buddies  Год назад

      The code should be the same regardless of the motor size.

    • @ragjnmusic8765
      @ragjnmusic8765 Год назад

      @@Science.Buddies ok thank you sir

  • @adhamahmed7797
    @adhamahmed7797 Месяц назад

    Can you please write the arduino code

  • @PuljovenCagud
    @PuljovenCagud Год назад

    what simulator you are using?

    • @christopherkube7805
      @christopherkube7805 Год назад

      It's called TinkerCAD (you can see the logo in the top left corner)

    • @Science.Buddies
      @Science.Buddies  Год назад

      The simulator is called Tinkercad Circuits, we have a separate tutorial about it here: ruclips.net/video/9RF_BZ1Cg4k/видео.htmlsi=9QhBv4rMeamxNTDF

  • @ggzion
    @ggzion 6 месяцев назад

    thank you

  • @omarbravestone3221
    @omarbravestone3221 8 месяцев назад

    can you start putting the code down below so we can copy and paste. Please!!!

    • @Science.Buddies
      @Science.Buddies  8 месяцев назад

      Hi - unfortunately the RUclips description field doesn't like Arduino code and the formatting gets messed up. For most of our newer videos there is a link to a Tinkercad Circuits simulation where you can copy the code, we're sorry we don't have it for all the old ones!

  • @danielthegamer3129
    @danielthegamer3129 Месяц назад

    It turn off and on my headphone while im moving potentimeter not the motor

  • @CeceEspadas
    @CeceEspadas Год назад

    Hi, I am struggling to get this to work with no buttons. I have included Motor.h and Arduino.h and used your exact code. I get the error message of;
    C:\Users\cespa\OneDrive\Documents\Arduino\libraries\L298_Motor_Driver\Motor.cpp: In member function 'void Motor::goPercentage(uint8_t)':
    C:\Users\cespa\OneDrive\Documents\Arduino\libraries\L298_Motor_Driver\Motor.cpp:101:13: error: 'speed' was not declared in this scope
    checkWrite(speed);
    ^~~~~
    C:\Users\cespa\OneDrive\Documents\Arduino\libraries\L298_Motor_Driver\Motor.cpp:101:13: note: suggested alternative: '_speed'
    checkWrite(speed);
    ^~~~~
    _speed
    exit status 1
    Error compiling for board Arduino Uno.
    Please help, thanks!

    • @Science.Buddies
      @Science.Buddies  Год назад

      When you get an error message like that, it helps to google specific parts of it (not necessarily the parts with the file path on your computer, since that won't match what other people have when encountering the same error). When you see something like "error: 'speed' was not declared in this scope" that usually means a variable was not declared properly, e.g. "int speed" may be missing from the beginning of your program. Going forward, we can't provide much debugging help in RUclips comments, but the official Arduino forums can usually help.

  • @svarduino
    @svarduino 2 месяца назад

    It doesn't work. Why?????

  • @1alx
    @1alx 10 месяцев назад

    my h bridge overheats super fast

  • @Stocks4Tomorrow
    @Stocks4Tomorrow Год назад

    program not working

  • @ferus5583
    @ferus5583 2 месяца назад

    what is the program he's using?

    • @Science.Buddies
      @Science.Buddies  2 месяца назад

      The simulation program we use in our tutorials is called Tinkercad Circuits and we have a video about it here: ruclips.net/video/9RF_BZ1Cg4k/видео.htmlsi=etlI65BHW12xj1Ln

  • @paperhead8004
    @paperhead8004 7 месяцев назад

    How can I connect a second motor?

    • @Science.Buddies
      @Science.Buddies  7 месяцев назад

      You can use the other side of the H-bridge to connect a second motor the same way you connected the first one.

    • @paperhead8004
      @paperhead8004 6 месяцев назад

      @@Science.Buddies It doesnt work