# Control your motors with L293D and Arduino

After long research and trial and error, I have came up to a new walkthrough regarding this nice chip, the L293D.

Each project is one project and each one has its own unique power configurations, so you must be aware of the best battery choice and how to distribute voltage through your robot.

Once you've decided on batteries, how do you regulate the voltage

************************************************

L293D gives you the possibility to control two motors in both directions - datasheet
Remove these ads by Signing Up

## Step 1: Basic implementation

This is the most basic implementation of the chip.

As you can see, a 5V Voltage Regulator is between the battery and pins 1, 9, 16.

Pin 8 gets power before the VReg, if your motor needs for example 6V you should put 6V directly in this pin, all the other pins should not get more than 5V.

This will work with no problem at all, but if you want to do the right implementation take a look at the next example:

This is the correct Implementation (with the capacitors), and note that pin 8 is feeded by unregulated voltage. This means that if your motors need more than 5V, you should power this pin with that amount of voltage, and the rest of the circuit with 5V.

 1-40 of 72 Next »
DanM53 months ago

Thanks for the post. I made this circuit and it worked well. The photo was taken before I found the error on only hooking the unregulated power to one pin.

15 days ago

Hello,

Do you have a code for that car? I have the same exact one.

sagund1 month ago

hello there...i am building a robot using arduino and L293D.....and i want to use bluetooth module on the same to control the robot using android app...i wonder if you could help me with the codes to be written on the arduino....thankyou :))

Hello!
I want to use a 5v motor, and use a 5v DC powersource (not battery, wall plug). Do I still need to regulate my voltage? Can my 5V source be used for Vs pin of the L293D and microcontroller Vcc? Or, do I somehow need to isolate the 5v between those inputs? Thanks!

8 months ago

BTW, I plan to use ATtiny to provide PWM to L293D.

7 months ago

How did I go with the Attiny? I want to try as well

3 months ago

You can see how to use an ATtiny on my blog. It shows how to program it and everything.

http://jamestav.com/programming-an-attiny85-with-an-arduino/

JamesT23 months ago

I like it! You are very detailed and specific. There is also an Adafruit Shield that uses 2 of those chips and is very good. They're cheap as well, like 5 or 6 bucks. I have a tutorial on how to use them http://jamestav.com/l293d-motor-shield/

supershwa1 year ago
Good instructable - to clarify, the [battery] in this example powers the motors separate from the Arduino power source: the Arduino controlling this circuit has a separate power source (an additional 7-12v source plugged into the Arduino.) You should be able to use a 9v battery for the motors, and a separate 9v for the Arduino (the motors can run faster this way.)
1 year ago
By the way - L293D chips aren't at RadioShack...I waited 3 weeks to get them from China.
4 months ago

Wow that sucks a month. You know you can get free samples from Texas Instruments right??The Company who makes them!

1 year ago
oddWires has lots of L293Ds at the link below in the San Francisco bay area shipping world-wide. Also look for special offer of 10% discount in November for instructables members. Use SAVE10 as coupon code. Disclaimer: I work for oddWires.

http://www.oddwires.com/l293d-stepper-motor-controller-driver-ic/
Kante Tech5 months ago

Do you have a pcb layout to show how you would etch this or a schematic because im confused with the wiring for the gnd pins

magiccircuit8 months ago

Hi thanks for this article, it's very help full for me. Here is my video where i used L293d driver ic, arduino and mpu6050

Thanks for the great cheap solution. I was trying this using PWM. and for lower duty cycle it doesn't response very well. Say for example if i use analogWrite(40) it doesn't response but if I go around 128 or above it responses. What do you think about that?Any one had an issue with it?

That is very normal to happen, normally DC motors have a minimum required voltage to operate.
11 months ago
Aha. Thank you.
mgarg51 year ago
Sir just 2 questions, Can i use this setup for a robotic arm. I have 2 L293D chips i need to inetrface. Is it posible? If yes then how? & also can i use Dc motors with just power and ground for this setup instead of a motor with a feedback?
EduanSnyman1 year ago
Hi! This is a brilliant tutorial :D I do just want to ask something (I apologise if its a noob question); but the DC motor (For Linear actuator) that I will be using has its own battery unit and will draw a maximum of 3A and will be operated at 12V. Is this current too much for this setup? If it is, what should I do? Has it got to do with what the L293D can handle? Thank you! :D
1 year ago
Also, I am using an Arduino Uno to control everything; the 3A isnt drawn through the Arduino right?
guibot (author)  EduanSnyman1 year ago
Hi! The L293D can handle only 600mA per channel, if you need 3A, try pololu drivers, you have drivers to handle 16A or even more.
Good luck
Eman341 year ago
Just wondering how you could integrate a joystick controller into this design? Thank you
TorBoy92 years ago
I breadboarded this circuit and use the sketch as is. Both the circuit and the sketch work without issue. The electrical schematic and the breadboard differ slightly. I used the breadboard circuit. The Arduino pins 2,3 go to one side of the L293D, pins 7,8 go to the other side of the L293.

Your implementation into a circuit board also differs from the breadboard, such as the added voltage regulator. If you have time, could you pls update your electrical schematic?

Anyway, thanks for the great 'ible.
guibot (author)  TorBoy91 year ago
thanks for your notes, this is a very old instructable, it will be difficult to update ..
guillempq1 year ago
Can you control a Brushless motor?
ticapix5 years ago
Thanks for the article :) Can you explain or give to link which explain why you put capacitors ? (and why this way ?) Diodes aren't good ?
5 years ago
The capacitors from the motor leads to ground absorb noise generated by the motors. Motors are notorious for generating spikes that interfere with nearby logic and sensor circuits. The big capacitor across the battery smooths the supply voltage, keeping the internal resistance of the battery from dragging the bus voltage down when the current into the circuit suddenly increases (like when you start a motor). The parallel pair of capacitors from +5V to ground filter the logic-circuit supply. The big electrolytic capacitor soaks up low-frequency trash, but isn't so good at handling high-frequency noise, like that generated by fast-switching logic. The .1 microfarad capacitor is a ceramic or polyester type that handles the hign frequencies.
2 years ago
This post has been a great help to me. I had numerous problems affecting my logic as I hadn't implement the ceramic capacitors detailed in your post. I was tearing my hair out and temporarily abandoned my project. Thank you very much.

Paul
5 years ago
thanks Wyle_E :)
shanakaplus3 years ago
um looking for elevator avr program. Do you have example program ?
moose49874 years ago
so, say i were to use a motor to turn a solar panel... if i used the voltage from the solar panels which vary from 6-9 volts to power the arduino, could i also use that unregulated voltage to power the L293?
chris274 years ago
Hey, sorry to bump an old thread, but I'm thinking of using four PICAXE 08-M chips as slaves for DC motor control via PWM, routed through a L293D (four mono-directional motors).  The only example I've seen of this kind of setup (http://www.phanderson.com/picaxe/pwm_stamp.html) seems to suggest that in order to change the duty cycle of the PWM out, you have to pull pin 4 low, then pulse a certain number of times in 100ms, then pull pin 4 high again.  Is that true?  If so, it's only possible to change the motor speed a maximum of 10 times per second - which isn't very useful when making minute adjustments to respond to gyro stabilisation.  Anyone know of a better way to achieve this?

Cheers
felixk4 years ago

Great Job! :)

I noticed that in the final breadboard (Page 3 of the downloadable pdf), you have included servo control and a couple of extra capacitors that are not in the system diagram. Any chance of a complete schematic of this circuit?

Thanks

mani.atico5 years ago
Hi,
I'm new to electronics (follow instructions level) and this instructable helped me a lot on bringing two motors to life with my arduino.

I have a basic question: is it better to use the 5V arduino output or a regulated current from the ext source (as shown on this instructable) for the L293D logic input?

Thank you
5 years ago
ext source, always better with the Arduino.
comodore5 years ago
Hi I like your Instructables very much! Great job! I have a question that I think you may know the answer to. I need a small chip like this one that I can program and put it in a circuit so when it activates by a sensor ( in my case I want to put a light sensor (LDR))When light hits the light sensor It turns on a motor for a period of time (lets say 5 seconds). Then when the sensor finds it self in the dark it turns on the motor ( again for 5 sec) BUT IN THE opposite DIRECTION. All in All When there is lite it turns on the motor for 5 sec on one side (lets say left) when there is no light it turns the motor for 5 sec (on the oposite side, right) Do you know such a chip that will enable me to program it and make it do what I described??? Thank you! Stanislav
5 years ago
You can use the same setup, simply save the states of the ldr and you can check if there was light before and have the arduino reverse the motor->

if ( pin 1 = high)
{
turn right
5 sec
}
if (pin 1 = low)
{
turn left
5 sec
}

else
{
do nothing
}

Hope I could help
5 years ago
THANK YOU SO MUCH!!! OK, so I just upload this to the Arduino? On what pins do I connect the motor, LDR, power??? I needed someone to write the code because I am a complete n00b in programing... THANK YOU! Could you please now just help me, to say, put it together, like on what pins do I connect the motor, LDR, power... Can I remove the ATMega chip and use it with out the Arduino board, connecting the components directly to the chip? Thank you!
5 years ago
no you can't, it's just pseudocode so you can get an idea what you have to programm, sadly I don't own an arduino so I can't write it for you. sry
5 years ago
Well... Thanks any way... Thanks, you helped me! :D
 1-40 of 72 Next »