This tutorial was featured on the official Arduino blog on 3/9/2011
This week, we’ll finally be using the Arduino to control some motors! First up, we’ll control a standard DC motor running off a 9V battery with the help of an NPN transistor and a PWM (Pulse Width Modulated) signal from the Arduino. Next, it’s onto 180 degree servo motors, which we will power on an independent 5V rail using a voltage regulator. We’ll control the servo using a PWM signal from the arduino, and I’ll show you how you can turn analog distance readings into precise angles for the servo to turn to!
I mention in the video that you can control DC motor direction using an H-Bridge. If you want to wire that up, take a look through this Wikipedia article, and read through this tutorial.
If you want to learn more about analog input filtering in software, check out this example code.
The Arduino Contest has been extended! So don’t forget to submit your project.
You can download the files associated with this episode here:
Distributed under the GNU General Public (Open-Source) License.
Please Attribute and Share-Alike.
301 comments
I have to make a lift with college project and have a big problem of making the lift moving slowly
i have used a toy car motor
using 3 volt battery
swiches to do forward and reverse
still motor goes up very fast and come down very quick , how to slow down
pls give a ideas , no time to wait need to send project by friday 19 september 210 14 thanks
use stepper motor for more accurate movements. it has high torque and bi-directional control.
u can use 12v for car motors. use L293D for both speed and direction control.
I am working on the Chapter4 tutorial in your book and am having an issue with the servo part. I am using a NES-507 servo. As soon as the code myServo.attach(SERVO); is executed my servo rotates as far as it can and continues to try and rotate further causing the servo to start heating up.
I have triple checked everything and all seems connected correctly servo wires are orange, red, brown, control, power, ground respectively. I am wondering it the issue is because the servo may be an old analog type and not digital.
that npn transistor is the one you used in your video tutorial?
Can u tell mi how can I switch on and off projector by interfacing arduino…???
I am trying to run the initial DC motor tutorial (Exploring Arduino Chapter 4) that ramps the DC motor up and down via the Arduino code. Using the components from the official Arduino starter kit (1N4007 diode, 6/9V DC motor, BC 547B transistor, 1 microfarad electrolyte capacitor [Radio Shack] and 1K resistor), what could be the possible sources of error in my circuit? I have taken a digital multi-meter and I am reading values of a maximum of 2 volts at the DC motor. I have went through the wiring half a dozen times and everything looks proper according to the tutorial schematic. There is a low humming emitted when the sketch ramps up and down. This I believe is verification the code is not an issue just the amount of current the motor is receiving. I have tested the 9V battery and it is putting out 9V. Any suggestions at this point would be appreciated. Thank you.
nice, i will tray step by step
i hope its work
sejuta mp3
Hi there, me confirming also. One of the best books I’ve purchased lately about arduino motors. Thanks, worth every penny. Matija from Slovenia.
Please help. For the first task, I get error message “motorPin was not declared in this scope”.
Can I power 4 SG 5010 Tower Pro using the same single 9V battery and single regulator?
Or do I need separate regulators for each?
I cannot see the current ratings of the regulator and the motor too.
Thanks!
Thank you very much for these very important tutorials and specially for your complete book “Exploring Arduino: Tools and Techniques for Engineering Wizardry”…………..
I have 4 DC toy motors connected to the L293D connected to HT12D. It has a IC7805 to regulate the voltage, I am supplying approx. 18v from 4 Li-ion batteries in series. The motors rotate slowly and jerk suddenly, and this keeps on happening throughout the process, i could not solve this latching problem. Can you please write me a solution?
Hi, may i know which software can be used to open the schematics file?
Hi sir,I have been using l293d ic to run 9v motors.what if i use 9v battery of 1.5 amp at l293d ic to run 9v motor.Does it going to work or damage both ic and motor????
Hi ,
If I use a non-grounding system breadboard ( normal breadboard ), can I do the project successfully?
Or then is there any problem with my other components that related to this project?
Please help
Thanks , have a nice day
I’ll try it later hopefully this way can work well. Thank you for sharing knowledge.
kensasi mp3
Godd jobb
Im having an issue with the circuitry on Figure 4-3, I’ve wired it up exactly the way the book says as well as a few different configurations which all amount to the same thing, and it works in terms of the motor runs when its in the 5V pin which is where the book says to test before moving on but as soon as voltage is applied to the base of the transistor allowing current flow from the 9V battery the transistor gets incredibly hot within a couple secs, in fact before I even realized it was doing that I burnt one out. Ive tried multiple things increasing the size of the resistor in between the 5V output and the base from 1k to 10k which slows down the overheating but only for a couple of seconds and also doesn’t gain a response from the motor as consistently. Ive also tried just attaching the base to a dc regulated power supply instead of the Arduino’s set 5V and slowly increasing the voltage until it lets enough current through that the motor runs which ive found the transistor can do with only about 1.5 volts but even then the transistor gets incredibly hot within a few seconds, Ive also made sure to clear any code on the arduino that could somehow cause this. If anyone can tell me why this is happening and how to fix it, I would appreciate it also amongst all of this the motor doesn’t always turn on consistently either, it seems very temperamental
I was clicking through, browsing stuff.
One suggestion:
Your link ‘schematics’ points to a ZIP file.
I think it would be clearer to readers if the type of link a articulated, ie., zip file, external/new browser window.
I think it would save some frustrated clicks.
Really liked the content on the blog !! If you are interested in checking out my website, I have attached the link below URL: https://mechtex.com/bldc-motors
Really liked the content on the blog !! If you are interested in checking out my website, URL: https://mechtex.com/bldc-motors Do like and comment :)