L293D Motor Driver Module Details
L293D is a typical Motor driver or Motor Driver IC which allows DC motor to drive on either direction. L293D is a 16-pin IC which can control a set of two DC motors simultaneously in any direction. It means that you can control two DC motor with a single L293D IC. Dual H-bridge Motor Driver integrated circuit (IC).

L293D Pin Configuration
1. Can be used to run Two DC motors with the same IC.
2. Speed and Direction control is possible
3. Motor voltage Vcc2 (Vs): 4.5V to 36V
4. Maximum Peak motor current: 1.2A
5. Maximum Continuous Motor Current: 600mA
6. Supply Voltage to Vcc1(vss): 4.5V to 7V
7. Transition time: 300ns (at 5Vand 24V)
8. Automatic Thermal shutdown is available
9. Available in 16-pin DIP, TSSOP, SOIC packages.

Alternatives for DC Motor Driver:
1. L298N.
2. L293D.
3. MX1508

Where to use L293D IC:
The L293D is a popular 16-Pin Motor Driver IC. As the name suggests it is mainly used to drive motors. A single L293D IC is capable of running two DC motors at the same time; also the direction of these two motors can be controlled independently. So if you have motors which has operating voltage less than 36V and operating current less than 600mA, which are to be controlled by digital circuits like Op-Amp, 555 timers, digital gates or even Micron rollers like Arduino, PIC, ARM etc.. this IC will be the right choice for you.
How to use a L293D Motor Driver IC
Using this L293D motor driver IC is very simple. The IC works on the principle of Half H-Bridge, let us not go too deep into what H-Bridge means, but for now just know that H bridge is a set up which is used to run motors both in clock wise and anti clockwise direction. As said earlier this IC is capable of running two motors at the any direction at the same time, the circuit to achieve the same is shown above.

All the Ground pins should be grounded. There are two power pins for this IC, one is the Vss(Vcc1) which provides the voltage for the IC to work, this must be connected to +5V. The other is Vs(Vcc2) which provides voltage for the motors to run, based on the specification of your motor you can connect this pin to anywhere between 4.5V to 36V, here I have connected to +12V.
The Enable pins (Enable 1,2 and Enable 3,4) are used to Enable Input pins for Motor 1 and Motor 2 respectively. Since in most cases we will be using both the motors both the pins are held high by default by connecting to +5V supply. The input pins Input 1,2 are used to control the motor 1 and Input pins 3,4 are used to control the Motor 2. The input pins are connected to the any Digital circuit or microcontroller to control the speed and direction of the motor. You can toggle the input pins based on the following table to control your motor.

1. Used to drive high current Motors using microcontroller.
2. Can be used to drive Stepper motors.
3. High current LED’s can be driven.
4. Relay Driver module (Latching Relay is possible).


// www.androiderode.com
int enableA = 6;
int MotorA1 = 8;
int MotorA2 = 9;
//Motor B
int enableB = 7;
int MotorB1 = 10;
int MotorB2 = 11;

void setup() 
Serial.begin (9600); //configure pin modes
pinMode (enableA, OUTPUT);
pinMode (MotorA1, OUTPUT);
pinMode (MotorA2, OUTPUT);
pinMode (enableB, OUTPUT);
pinMode (MotorB1, OUTPUT);
pinMode (MotorB2, OUTPUT);
void loop() 
//enabling motor A
Serial.println ("Enabling Motors");
digitalWrite (enableA, HIGH);
digitalWrite (enableB, HIGH);
delay (1000); //do something
Serial.println ("Motion Forward");
digitalWrite (MotorA1, LOW);
digitalWrite (MotorA2, HIGH);
digitalWrite (MotorB1, LOW);
digitalWrite (MotorB2, HIGH);
delay (3000);
Serial.println ("Motion Backwards");
digitalWrite (MotorA1,HIGH);
digitalWrite (MotorA2,LOW);
digitalWrite (MotorB1,HIGH);
digitalWrite (MotorB2,LOW);
delay (3000);
Serial.println ("Stoping motors");
digitalWrite (enableA, LOW);
digitalWrite (enableB, LOW); delay (3000); 

About the Author


Hello! My Dear Friends. I am Subramanian. I am writing posts on androiderode about Electronics testing and equipments.

View All Articles