How to Use the L293D Motor Driver - Arduino Tutorial





Introduction: How to Use the L293D Motor Driver - Arduino Tutorial

The L293D is a 16-pin Motor Driver IC which can control a set of two DC motors simultaneously in any direction. The L293D is designed to provide bidirectional drive currents of up to 600 mA (per channel) at voltages from 4.5 V to 36 V (at pin 8!). You can use it to control small dc motors - toy motors. Sometimes it can be extremely hot.

In this tutorial you will learn how to use it with Arduino uno to control two dc motors.

Step 1: What You Will Need

For this project you will need:

  • Arduino uno
  • Breadboard
  • L293D Motor Driver IC
  • 2x (small) DC motors

Step 2: The Circuit

The connections are easy, see the image above with the breadboard circuit schematic.

Tip: You can connect an external power source to L293D pin 8, up to 36V! Make sure not to "burn" your motors!

Step 3: The Code

Here's the code, embedded using codebender!

Try downloading the codebender plugin and clicking on the Run on Arduino button to program your Arduino with this sketch. And that's it, you've programmed your Arduino board!

You can keep playing with that by clicking the "Edit" button and start making your own modifications to the code. For example try to combine parts of code to move both motors simultaneously.

Try to use analogWrite(pin, PWM value) instead digitalWrite(pin, HIGH/LOW) to control the speed of motors!

Step 4: Well Done!

You have successfully completed one more Arduino "How to" tutorial and you learned how to use the L293D motor driver IC to control two dc motors with the Arduino uno board.

I hope you liked this, let me know in the comments.
There will be more of them, so make sure to click Follow button!



  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Pro Tips Challenge

    Pro Tips Challenge
  • Paper Contest 2018

    Paper Contest 2018

We have a be nice policy.
Please be positive and constructive.


2 Questions


Can I use four 100 rpm BO motor with L293 motor driver .
And how much input voltage is required for motor driver

I am new to electronics and I am not understanding exactly, why I need to use a motor controller IC? Can't I use my arduino only to run a DC motor?


Can I control the motors in both the directions using non PWM i/o terminals on the arduino uno


Hi. Can I have 4 time more current consumption (4*600 mA) from L293D to a DC motor with just one direction by using parallel circuit of input's and output's of the this H-bridge IC ? (as shown in picture)


so , because no body answered me quickly, I decide to make this idea myself, and I succeed . by this method you can reach up to 2400 mA from all of four H-bridge's of one L293D, also if you solder 1, 2 or 3 IC's on top of together you can reach multple current's depend number of IC's.

good luck.

Perhaps a better option is to use the L293 (no 'D') which is rated at 1amp per output.

u can use 4017 ic instead of arduino

Hey, there is an error when displaying the code from Please fix this error soon or provide the code snippet some other way. That would be really helpful.

Hey, can I make a variable speed driver with L293D?

Yeah, using analogwrite instead of digitalwrite & assigning values