Motor Type Selection: Where the L293D Actually Fits
Not every motor belongs on an H-bridge. Selecting the right motor for your load profile dictates the driver architecture you need. The L293D is fundamentally designed for inductive loads that require bidirectional current flow and basic speed control via PWM.| Motor Type | Torque Curve Profile | Control Needs | Typical Cost | L293D Compatibility |
|---|---|---|---|---|
| DC Brushed (Gearmotor) | Maximum at stall (0 RPM), drops linearly as speed increases. | H-Bridge for direction; PWM on Enable pin for speed. | $2 - $12 | Ideal. Perfect for small wheeled robots and conveyors under 500mA. |
| Stepper (Bipolar) | High holding torque at standstill; drops sharply at high RPM. | Sequenced H-Bridge logic; requires chopper drive for high speed. | $10 - $25 | Functional but inefficient. Works for low-speed pan/tilt, but lacks microstepping and wastes power as heat. |
| Servo (RC Hobby) | High torque via internal gearbox; maintains torque across operational arc. | 50Hz PWM pulse (1ms-2ms width) on a single signal wire. | $5 - $18 | Incompatible. Servos have internal drivers. Connect directly to microcontroller GPIO and a separate 5V/6V BEC. |
| BLDC (Brushless DC) | Flat torque curve across a wide RPM range; high efficiency. | 3-phase commutation; requires rotor position feedback (Hall/Back-EMF). | $15 - $40+ | Incompatible. Requires a dedicated 3-phase ESC (Electronic Speed Controller). |
L293D Wiring, Terminals, and the Voltage Drop Penalty
The L293D comes in a 16-pin DIP or SOIC package. Correctly identifying the split power rails is the most common stumbling block for beginners. The IC separates logic voltage from motor voltage to protect your microcontroller from inductive spikes.Terminal Identification
- VCC1 (Pin 16): Logic supply. Connect to your microcontroller's 5V rail. Powers the internal logic gates.
- VCC2 (Pin 8): Motor supply. Connect to your battery or bench supply (4.5V to 36V). Powers the motor outputs.
- EN1, EN2 (Pins 1, 9): Enable pins. Pull HIGH to activate the channel. Feed a PWM signal here for speed control.
- IN1-IN4 (Pins 2, 7, 10, 15): Logic inputs. Connect to microcontroller GPIOs to set direction (e.g., IN1 HIGH / IN2 LOW = Forward).
- OUT1-OUT4 (Pins 3, 6, 11, 14): Motor outputs. Connect directly to the motor terminals.
- GND (Pins 4, 5, 12, 13): Ground and Heat Sink. These four center pins are internally tied together and act as the primary thermal path to the PCB.
The Sizing Rule of Thumb: The "Plus-Two Volts" Rule
Because the L293D uses bipolar Darlington transistors on its high and low sides, current must pass through multiple semiconductor junctions. This creates a fixed voltage drop. According to the Texas Instruments L293D datasheet, the high-level output voltage drops by roughly 1.4V at low currents, and up to 2.0V or more near the 600mA limit.Worked Load Example:
You are building a line-following robot using two 12V nominal DC gearmotors. Under your expected mechanical load, each motor draws 350mA. The stall current is 1.1A.
- Voltage Sizing: If you supply VCC2 with exactly 12V from your battery, the L293D will drop ~1.6V at 350mA. Your motor only receives 10.4V. This results in a 15% loss in top speed and a proportional loss in torque. To deliver a true 12V to the motor terminals, you must supply VCC2 with 14V (12V + 2V drop).
- Current Sizing: Your running current (350mA) is safely below the 600mA continuous limit. However, the stall current (1.1A) exceeds the 1.2A peak limit and vastly exceeds the continuous limit. If a wheel jams, the L293D will attempt to deliver 1.1A. It will rapidly overheat and trigger its internal thermal shutdown.
Failure Signatures: Hum, Overheat, and Stall
When an L293D circuit fails on the bench, the symptoms are highly predictable if you understand the IC's internal protections and electrical limits. Here is how to diagnose the three most common failure modes.1. The "Hum Without Movement" Signature
Symptom: The motor vibrates or hums loudly but the shaft does not turn, especially when starting from a dead stop.
Cause: Voltage sag under startup load. DC motors draw 3x to 5x their running current to break static friction. If your power supply cannot handle this transient spike, VCC2 sags. Combined with the L293D's internal voltage drop, the voltage reaching the motor falls below the threshold needed to generate breakaway torque.
Fix: Measure VCC2 with an oscilloscope or a multimeter with a min/max hold feature during startup. If it dips below the motor's minimum starting voltage, add a large bulk capacitor (e.g., 470µF to 1000µF) directly across VCC2 and GND, or upgrade your power supply's peak current rating.
2. The Overheat Signature
Symptom: The IC case becomes too hot to touch (exceeding 70°C) even when driving loads well under 600mA.
Cause: Inadequate thermal dissipation. The L293D dumps heat through its four ground pins. If you are testing on a solderless breadboard, there is no copper mass to absorb the heat. Power dissipation is calculated as P = V_drop × I. At 400mA with a 1.6V drop, the IC is dissipating 0.64W. In a DIP-16 package without a heatsink, this will push the junction temperature past 100°C rapidly.
Fix: Move the IC to a soldered perfboard or custom PCB. Ensure the four ground pins are soldered to a large copper pour or ground plane, which acts as the necessary heatsink. Never run the L293D at continuous loads over 300mA on a bare breadboard.
3. The Stall / Hiccup Signature
Symptom: The motor runs for a few seconds, stops completely, waits for 10-20 seconds, and then starts again in a repeating cycle.
Cause: Thermal shutdown cycling. The L293D features internal thermal shutdown circuitry. When the silicon junction reaches approximately 150°C, the IC disables all outputs to prevent silicon damage. Once it cools below the hysteresis threshold, it re-enables.
Fix: Your continuous load is too high for the ambient thermal environment. You must either reduce the mechanical load, add active cooling (a small fan), or replace the L293D with a higher-current driver. For further reading on H-bridge thermal management, Electronics Tutorials provides excellent schematics on integrating external flyback diodes and heatsinking for older bipolar drivers.
L293D Motor Controller FAQ
Can I use an L293D motor controller for a stepper motor?
Yes, you can drive a 4-wire or 6-wire bipolar stepper motor using the two H-bridges inside the L293D by sequencing the logic inputs (IN1-IN4) in a full-step or half-step wave drive pattern. However, it is highly inefficient. Because the L293D lacks current-chopping (PWM current limiting), it applies full VCC2 voltage to the coils continuously at low speeds, generating massive amounts of waste heat in both the IC and the motor windings. For anything beyond a slow-moving dial or indicator, use a dedicated chopper driver like the A4988 or DRV8825.
Why is my L293D motor controller getting too hot to touch?
Heat is the direct result of the Darlington output stage's voltage drop. Unlike modern MOSFET drivers that act like low-value resistors (generating heat proportional to I²R), the L293D acts like a fixed voltage drop (generating heat proportional to V × I). Even at a modest 300mA, a 1.5V drop means the IC is burning 0.45 watts of power as heat. If the four center ground pins are not soldered to a copper ground plane to wick that heat away, the plastic DIP package will quickly reach 80°C or higher. It is a limitation of the 1980s bipolar silicon design, not necessarily a sign of a wiring error.
L293D vs L298N: Which motor driver should I choose?
Choose the L293D for low-current, compact breadboard projects where built-in flyback diodes save space. Choose the L298N module when you need to drive larger 12V/24V motors drawing up to 2A per channel. However, be aware that the L298N has an even worse voltage drop (up to 2.5V to 3.0V at 2A) and requires a massive bolted-on aluminum heatsink. If you are designing a new PCB in 2026 and want high current without the heat, skip both legacy bipolar ICs and use a dual MOSFET driver like the TB6612FNG (1.2A continuous, ultra-low drop) or the DRV8833.
How do I stop my DC motor from braking when the L293D enable pin goes low?
When you use PWM on the Enable (EN) pin to control speed, the motor experiences "fast decay" or active braking during the LOW phase of the PWM cycle, because the outputs are disabled but the inductive kickback is clamped by the internal diodes back into the supply. If you want the motor to coast freely during the PWM LOW phase (slow decay), you must keep the EN pin tied HIGH and instead apply your PWM signal to the IN1 and IN2 logic pins. Driving both IN1 and IN2 LOW while EN is HIGH puts the H-bridge into a high-impedance state, allowing the motor to coast naturally.






