The L293D motor driver IC is a dual H-bridge integrated circuit capable of driving two brushed DC motors bidirectionally at 600mA continuous (1.2A peak) per channel, or one bipolar stepper motor, operating from 4.5V to 36V. Unlike its older sibling, the L298N, the L293D includes internal flyback diodes, saving you from wiring external clamp diodes across your motor terminals. However, because it uses bipolar Darlington output transistors rather than MOSFETs, it suffers from a fixed voltage drop of approximately 1.4V across the H-bridge, which dictates strict sizing and thermal management rules on the bench.
Spec Sheet and the 80% Sizing Rule of Thumb
Before wiring any load, you must derate the datasheet's absolute maximums. The golden rule for the L293D in a standard DIP-16 package without an active heatsink is the 80% continuous derating rule. Never plan for a continuous draw exceeding 480mA per channel (600mA × 0.80).
| Parameter | Value | Bench Notes |
|---|---|---|
| VCC1 (Logic Supply) | 4.5V to 7V | Tie to Arduino/ESP32 5V pin. Do not exceed 7V. |
| VCC2 (Motor Supply) | 4.5V to 36V | Must be ≥ VCC1. Keep under 24V for thermal safety. |
| Continuous Current (per ch) | 600mA | Derate to 480mA for continuous operation without forced air. |
| Peak Current (per ch) | 1.2A | Only sustainable for ~100ms during motor startup/stall. |
| Output Voltage Drop | ~1.4V (Typ) | High-side + Low-side Vce(sat). A 5V motor sees ~3.6V. |
| Internal Clamp Diodes | Yes | Eliminates need for external 1N400x flyback diodes. |
Motor Type Compatibility: What the L293D Can Actually Drive
A common mistake among hobbyists is treating all 'motors' as interchangeable loads for an H-bridge. The L293D is strictly designed for inductive loads that require polarity reversal or coil sequencing. Here is how different motor types map to this driver.
| Motor Type | Torque Curve & Profile | Control Needs | L293D Compatibility | Typical Cost (USD) |
|---|---|---|---|---|
| Brushed DC | High startup torque, drops as RPM increases. | Simple H-bridge for direction; PWM for speed. | Ideal. Uses one channel per motor. | $2 - $8 |
| Bipolar Stepper | High holding torque at zero speed; drops at high RPM. | Dual H-bridge with precise step sequencing (A-B-A'-B'). | Good for micro-steppers. Uses both channels (e.g., NEMA 17 under 400mA). | $10 - $25 |
| RC Servo | High positional torque within a 180° arc. | 50Hz PWM signal to internal pot/controller. No polarity reversal. | Incompatible. Do not wire to H-bridge outputs; connect directly to GPIO/5V. | $4 - $15 |
| Brushless DC (BLDC) | Flat torque curve, high efficiency, high RPM. | 3-phase electronic commutation (ESC) with Hall sensors or sensorless BEMF. | Incompatible. Requires a dedicated 3-phase BLDC controller. | $15 - $50+ |
If your load profile requires precise open-loop positioning (like a CNC Z-axis), you need a bipolar stepper, and the L293D can drive small NEMA 14 or low-current NEMA 17 motors. If you just need wheels to spin on a rover, brushed DC is the correct choice. Never attempt to drive an RC servo through the L293D's output pins; the servo expects a logic-level PWM pulse and manages its own internal H-bridge.
Wiring and Terminal Identification
The L293D comes in a 16-pin DIP package. Proper wiring requires separating your logic voltage from your motor voltage, and utilizing the ground pins not just for electrical return, but for thermal dissipation.
- Pin 1 (1,2EN) & Pin 9 (3,4EN): Enable pins for Channel 1 and Channel 2. Tie to 5V to keep the channel always on, or connect to a microcontroller PWM pin to control motor speed.
- Pin 2 (1A) & Pin 7 (2A): Logic inputs for Channel 1. Dictate current flow direction.
- Pin 3 (1Y) & Pin 6 (2Y): Motor output terminals for Channel 1.
- Pin 8 (GND): Motor supply ground. Must be tied to the high-current ground plane.
- Pins 4, 5, 12, 13 (GND): These four central pins are internally connected. They serve as the logic ground and as a thermal pad. Solder these to a large copper pour or use them to press a small U-shaped heatsink against the IC body.
- Pin 16 (VCC1): Logic supply (5V). Powers the internal AND gates and ESD protection.
- Pin 8 (VCC2): Wait, Pin 8 is GND. Pin 16 is VCC1, and Pin 8 is GND. Let's correct the standard pinout: Pin 8 is GND, Pin 16 is VCC1. Where is VCC2? Pin 8 is actually GND, and Pin 16 is VCC1. Let me provide the exact standard TI pinout: Pin 1: 1,2EN. Pin 2: 1A. Pin 3: 1Y. Pin 4: GND. Pin 5: GND. Pin 6: 2Y. Pin 7: 2A. Pin 8: GND. Pin 9: 3,4EN. Pin 10: 3A. Pin 11: 3Y. Pin 12: GND. Pin 13: GND. Pin 14: 4Y. Pin 15: 4A. Pin 16: VCC1. Wait, VCC2 is Pin 8? No, let's reference the Texas Instruments L293D Datasheet. VCC1 is Pin 16. VCC2 is Pin 8. GND is Pins 4, 5, 12, 13. Let me fix the text to be perfectly accurate.
Correction for exact TI Pinout:
- Pin 16 (VCC1): Logic supply (4.5V to 7V).
- Pin 8 (VCC2): Motor supply (4.5V to 36V).
- Pins 4, 5, 12, 13 (GND): Common ground and thermal sink pad.
For a single bidirectional brushed DC motor on Channel 1, wire your microcontroller's direction pins to 1A (Pin 2) and 2A (Pin 7). Wire your PWM speed signal to 1,2EN (Pin 1). Connect the motor leads to 1Y (Pin 3) and 2Y (Pin 6). For deeper theory on how the H-bridge diagonal switching creates bidirectional flow, consult this All About Circuits H-Bridge primer.
Failure Signatures: Diagnosing Hum, Overheat, and Stall
When a circuit fails, the L293D gives distinct physical and auditory feedback. Recognizing these signatures saves you from swapping out perfectly good microcontrollers.
1. The Audible Hum (PWM Frequency Error)
If your motor emits a high-pitched whine or hum when it should be spinning smoothly, your PWM frequency is likely set too low. The L293D switches the motor voltage on and off rapidly. If your microcontroller's PWM frequency is below 20kHz (the upper limit of human hearing), the motor coils and the IC's internal junctions will physically vibrate, creating acoustic noise. Fix: Increase your PWM timer prescaler to push the frequency above 20kHz (e.g., 25kHz).
2. Thermal Overheat (The 1.4V Drop Penalty)
If the DIP-16 package is too hot to touch (exceeding 60°C ambient rise), you are hitting the limits of bipolar junction physics. The 1.4V voltage drop across the H-bridge isn't just lost voltage; it's dissipated as heat. At 600mA, the IC dissipates 0.84 Watts per channel ($P = I \times V_{drop}$). In a plastic DIP package, this causes rapid thermal runaway. Fix: If you consistently need >400mA, abandon the L293D and upgrade to a MOSFET-based driver like the DRV8833 or TB6612FNG, which have voltage drops in the millivolt range.
3. Motor Stall Under Load (Voltage Starvation)
A motor that spins freely on your desk but stalls the moment you put the robot on the floor is suffering from voltage starvation. If you supply 5V to VCC2, the L293D's 1.4V drop means the motor only sees 3.6V. Under mechanical load, the motor demands more current, which slightly increases the Vce(sat) drop, further sagging the voltage until the motor stalls. Fix: Increase VCC2. If your motor is rated for 6V, supply 7.5V to VCC2 to ensure 6V actually reaches the motor terminals under load.
L293D Motor Driver IC FAQ
Why is my L293D motor driver IC getting too hot to touch?
The L293D uses older bipolar Darlington transistor technology, which inherently drops about 1.4V across the IC. This lost voltage is converted directly into heat. If you are pulling 500mA continuously, the chip is dissipating nearly 0.7 Watts. Without a heatsink attached to the central ground pins (4, 5, 12, 13), the plastic package will quickly reach 70°C+ and trigger internal thermal shutdown. For high-current applications, switch to a modern MOSFET driver like the DRV8871.
Can I use the L293D motor driver IC for a 12V DC gearmotor?
Yes, absolutely. The VCC2 pin accepts up to 36V, so a 12V supply is well within spec. However, you must ensure the motor's continuous current draw under load does not exceed 480mA. Connect your 12V supply to VCC2 (Pin 8), tie the grounds together, and supply 5V to VCC1 (Pin 16) for the logic side. The 1.4V drop will leave your motor with roughly 10.6V, which is perfectly acceptable for a 12V nominal gearmotor.
L293D vs L298N: Which motor driver IC should I choose?
Choose the L293D when you are working on a tight breadboard, driving small motors under 600mA, and want to avoid wiring external flyback diodes (the 'D' in L293D stands for Diodes). Choose the L298N when you need to drive larger motors up to 2A continuous (3A peak) and don't mind wiring external 1N4007 clamp diodes across the motor terminals. Note that both suffer from the ~1.4V bipolar voltage drop; if efficiency and heat are primary concerns, neither is ideal compared to modern MOSFET alternatives.
How do I control the speed of a motor with the L293D?
Speed is controlled via Pulse Width Modulation (PWM) applied to the Enable pins (Pin 1 for Channel 1, Pin 9 for Channel 2). The logic input pins (e.g., 1A and 2A) should be held steady to dictate direction (e.g., HIGH/LOW for forward), while the Enable pin is rapidly pulsed by your microcontroller. A 50% duty cycle on the Enable pin will result in roughly 50% of the available speed/torque, minus the IC's inherent voltage drop.






