Tutorial: L293D H Bridge DC motor controller with Arduino

On this tutorial, we will show you how to use the L293D DC motor controller with the Arduino. The L293D is a H Bridge type IC and can control DC motors up to 36V. For detailed specs, check the datasheet.

Let's take a look at the L293D pinout:

As shown in the picture above, it's possible to drive 2 motors with a single L293D, however the power supply has to be strong enough to provide enough current. Here we will demonstrate with just one motor. The following table shows how to make the motor turn clockwise and anti-clockwise:

For example, if the pins 1 and 7 are in HIGH state, and the pin 2 in the LOW, the motor will rotate clockwise. On the other hand, if the pins 1 and 2 are in HIGH, and the pin 7 in the LOW, the motor will turn to the other way.

With a push button, a 10Kohm resistor, a DC motor, a 9V battery, an Arduino and the L293D, let's make this circuit:

On this circuit, the 9V battery supply the energy to the DC motor. Be careful, check you motor datasheet before connect it to the circuit!

After that, open your Arduino IDE and upload this code:

int switchPin = 2; // switch input
int motor1Pin1 = 3; // pin 2 on L293D
int motor1Pin2 = 4; // pin 7 on L293D
int enablePin = 9; // pin 1 on L293D

void setup() {
    // set the switch as an input:
    pinMode(switchPin, INPUT);

    // set all the other pins you're using as outputs:
    pinMode(motor1Pin1, OUTPUT);
    pinMode(motor1Pin2, OUTPUT);
    pinMode(enablePin, OUTPUT);

    // set enablePin high so that motor can turn on:
    digitalWrite(enablePin, HIGH);
}

void loop() {
    // if the switch is high, motor will turn on one direction:
    if (digitalRead(switchPin) == HIGH) {
        digitalWrite(motor1Pin1, LOW); // set pin 2 on L293D low
        digitalWrite(motor1Pin2, HIGH); // set pin 7 on L293D high
    }
    // if the switch is low, motor will turn in the opposite direction:
    else {
        digitalWrite(motor1Pin1, HIGH); // set pin 2 on L293D high
        digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D low
    }
}

Turn on your circuit and the motor will rotate to one direction. Press the button and the motor will rotate to the other side.

That it! Feel free to comment and post your thoughts. The Garage Lab is and open space to share knowledge and talk about electronics, open hardware, arduino and DIY stuff and hacking.

References:

http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-ar...

http://arduino.cc/playground/Main/InterfacingWithHardware

http://www.datasheetcatalog.org/datasheet/stmicroelectronics/1330.pdf

Views: 85561

Comment by Rahul Vyas on September 9, 2012 at 3:30am

Hi,

Need urgent help.
 I have a 12v motor which takes 4.55A current at full throttle. I want to control 2 of these motors with my reciever.

Check this link for the motor datasheet- http://www.pitsco.com/sharedimages/resources/DCDriveMotorSpecs.pdf

Also, Can this circuit be modified to control it with a RC reciever/transmitter?

Comment by Marcelo Rodrigues on September 9, 2012 at 7:47am

Rahul,

As the L293 can not drive so high current for your motors, you have to use another thing. I suggest you use an H-Bridge circuit like this one:

Image from http://wiki.mech.uwa.edu.au/index.php/Micro_crash_course/pwm

The idea is making the current flow through the load (motor) in the 2 different directions, making the motor spin to both directions, depending on what mosfets are active. You still can use PWM to control the speed.

Take a look at the article (link above) to understand how it works.

Good luck!

Comment by Ethan on November 3, 2012 at 3:28pm

I was woundering if you could use xbees to make this wireless.  Also can I do this with 2 motors and 1 arduino?  I need help! 

Comment

You need to be a member of GarageLab (arduino, electronics, robotics, hacking) to add comments!

Join GarageLab (arduino, electronics, robotics, hacking)

Latest Activity

Profile IconMarvin Wright and chaudhari vipin vasudev joined GarageLab (arduino, electronics, robotics, hacking)
Wednesday
Marcelo Rodrigues replied to Peter Davies's discussion Anyone got stock of Garagelabs automation board
"Peter, I will talk them to check if they can produce more units and make available on their…"
Tuesday
Brian B. Feaster commented on GarageLab's blog post Information Trade Between Cars by Wi-Fi
"I like this idea of information trade between cars by the WI-Fi . This would contribute in reducing…"
Tuesday
Peter Davies replied to Peter Davies's discussion Anyone got stock of Garagelabs automation board
"Hi Marcello I have bought all of Seeeds stock in two purchases - 8 units in all.  When I asked…"
Tuesday
Profile Icontarun patel, Enrique S. Perez Rodriguez, K Fiore and 5 more joined GarageLab (arduino, electronics, robotics, hacking)
Monday
Marcelo Rodrigues replied to Peter Davies's discussion Anyone got stock of Garagelabs automation board
"Peter, You can buy them on…"
Monday
Rob Lambert joined Marcelo Rodrigues's group
Thumbnail

Arduino

Group for the Arduino communitySee More
Saturday
Sardar Tamoor commented on Thulana Vimukthi's blog post GPS GUIDED AUTONOMOUS ROBOT
"can you plz help me on my project !!! its basically obstacle avoidance in dynamic environment and…"
Apr 27
Sardar Tamoor commented on Thulana Vimukthi's blog post GPS GUIDED AUTONOMOUS ROBOT
"can you plz help me on my project !!! its basically obstacle avoidance in dynamic environment and…"
Apr 27
Sardar Tamoor is now a member of GarageLab (arduino, electronics, robotics, hacking)
Apr 26
Peter Davies posted a discussion

Anyone got stock of Garagelabs automation board

HiI have a requirement for 11 automation boards and have been able to source 8,  does anyone have a…See More
Apr 25
Profile IconGuilherme Barros, Rob Lambert and kevin parr joined GarageLab (arduino, electronics, robotics, hacking)
Apr 22
Tino Pascuzzi left a comment for stephen smith
"Hello, my name is Tino Pascuzzi and I'm the owner of The Sanctuary Haunted Attraction.  I…"
Apr 14
Tino Pascuzzi left a comment for Aaron Thiedt
"Hello, my name is Tino Pascuzzi and I'm the owner of The Sanctuary Haunted Attraction.  I…"
Apr 14
Tino Pascuzzi left a comment for Paul Ellison
"Hello, my name is Tino Pascuzzi and I'm the owner of The Sanctuary Haunted Attraction.  I…"
Apr 14
Tino Pascuzzi left a comment for Gary
"Hello, my name is Tino Pascuzzi and I'm the owner of The Sanctuary Haunted Attraction.  I…"
Apr 14
Tino Pascuzzi left a comment for Amauri
"Hello, my name is Tino Pascuzzi and I'm the owner of The Sanctuary Haunted Attraction.  I…"
Apr 14
Mark Mendelsihn is now a member of GarageLab (arduino, electronics, robotics, hacking)
Apr 14
Tino Pascuzzi updated their profile
Apr 13
ade ljathanna is now a member of GarageLab (arduino, electronics, robotics, hacking)
Apr 12

© 2016   Created by Marcelo Rodrigues.   Powered by

Badges  |  Report an Issue  |  Terms of Service