

The L293D is a dual H-bridge motor driver IC manufactured by AD Store (Part ID: L293D). It is designed to control the direction and speed of DC motors and stepper motors. This versatile IC can drive two motors simultaneously, making it a popular choice for robotics, automation, and motor control projects. Its compact design and ease of use make it ideal for hobbyists and professionals alike.








The L293D is a robust IC with the following key specifications:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc1) | 4.5V to 7V |
| Motor Supply Voltage (Vcc2) | 4.5V to 36V |
| Output Current (per channel) | 600mA (peak: 1.2A) |
| Logic Input Voltage | 0V to 7V |
| Operating Temperature | -40°C to +150°C |
| Number of Channels | 2 (dual H-bridge) |
| Maximum Power Dissipation | 5W |
The L293D IC has 16 pins, each serving a specific function. Below is the pinout and description:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | Enable 1,2 | Enables H-bridge 1 (active HIGH). |
| 2 | Input 1 | Logic input for H-bridge 1 (controls motor direction). |
| 3 | Output 1 | Output for H-bridge 1 (connect to motor terminal). |
| 4 | Ground (GND) | Ground connection. |
| 5 | Ground (GND) | Ground connection. |
| 6 | Output 2 | Output for H-bridge 1 (connect to motor terminal). |
| 7 | Input 2 | Logic input for H-bridge 1 (controls motor direction). |
| 8 | Vcc2 (Motor Vcc) | Supply voltage for motors (4.5V to 36V). |
| 9 | Enable 3,4 | Enables H-bridge 2 (active HIGH). |
| 10 | Input 3 | Logic input for H-bridge 2 (controls motor direction). |
| 11 | Output 3 | Output for H-bridge 2 (connect to motor terminal). |
| 12 | Ground (GND) | Ground connection. |
| 13 | Ground (GND) | Ground connection. |
| 14 | Output 4 | Output for H-bridge 2 (connect to motor terminal). |
| 15 | Input 4 | Logic input for H-bridge 2 (controls motor direction). |
| 16 | Vcc1 (Logic Vcc) | Supply voltage for logic circuitry (4.5V to 7V). |
Below is an example of how to control a DC motor using the L293D and Arduino UNO:
// Define motor control pins
const int enablePin = 8; // Enable pin for motor 1
const int input1 = 9; // Input 1 for motor 1
const int input2 = 10; // Input 2 for motor 1
void setup() {
// Set pin modes
pinMode(enablePin, OUTPUT);
pinMode(input1, OUTPUT);
pinMode(input2, OUTPUT);
// Initialize motor in stopped state
digitalWrite(enablePin, LOW); // Disable motor
digitalWrite(input1, LOW); // Set input1 LOW
digitalWrite(input2, LOW); // Set input2 LOW
}
void loop() {
// Example: Rotate motor clockwise
digitalWrite(enablePin, HIGH); // Enable motor
digitalWrite(input1, HIGH); // Set input1 HIGH
digitalWrite(input2, LOW); // Set input2 LOW
delay(2000); // Run motor for 2 seconds
// Example: Rotate motor counterclockwise
digitalWrite(input1, LOW); // Set input1 LOW
digitalWrite(input2, HIGH); // Set input2 HIGH
delay(2000); // Run motor for 2 seconds
// Stop motor
digitalWrite(enablePin, LOW); // Disable motor
delay(2000); // Wait for 2 seconds
}
Motor Not Running:
Overheating:
Erratic Motor Behavior:
Can the L293D drive stepper motors?
Do I need external diodes for protection?
What is the maximum motor voltage the L293D can handle?
Can I control the motor speed with the L293D?
By following this documentation, you can effectively use the L293D motor driver IC in your projects.