An H-bridge is a four-switch electronic circuit that allows a DC voltage to be applied across a load in either direction, enabling bidirectional control of DC motors. If you need a motor to spin forward and reverse, or if you need to flip the polarity of a Peltier cooler, this is the topology you use. It replaces bulky mechanical relays with solid-state switching, allowing for high-speed pulse-width modulation (PWM) and precise torque control.

The Core Switching Matrix and Shoot-Through

The circuit gets its name from its schematic layout: four switches form the vertical legs of an 'H', and the load (the motor) forms the horizontal crossbar. The switches are typically MOSFETs or BJTs, arranged in two pairs: high-side (connected to VCC) and low-side (connected to GND).

To drive the motor forward, you close the top-left (Q1) and bottom-right (Q4) switches. Current flows from VCC, through the motor, to ground. To reverse it, you close Q2 and Q3. Current flows the opposite way. If you open all four switches, the motor coasts. If you close both low-side switches (Q3 and Q4), you short the motor terminals together, creating a dynamic braking effect known as 'fast decay'.

Critical Failure Mode: Shoot-Through
If Q1 and Q3 (or Q2 and Q4) on the same side are turned on simultaneously, you create a direct, zero-resistance path from VCC to GND. This is called shoot-through, and it will instantly vaporize the silicon die or trip your power supply's overcurrent protection. Quality H-bridge ICs include internal logic that enforces dead time—a microsecond-scale delay ensuring one switch fully turns off before the opposite switch turns on.

Spec-Sheet Comparison: Common H-Bridge ICs

Choosing the right driver depends on your voltage, continuous current, and acceptable thermal dissipation. Here is how the most common bench and industry modules compare based on their datasheets.

Part Number Topology Max VCC Continuous Current Typical Voltage Drop Best Use Case
L298N BJT (Bipolar) 46V 2.0A per channel ~2.0V (High heat) Legacy hobby projects, 12V solenoids
TB6612FNG MOSFET 15V 1.2A per channel ~0.5V Small robotics, 6V micro gearmotors
DRV8871 (TI) MOSFET 45V 3.6A ~0.4V (Low Rds(on)) Automotive relays, 12V/24V actuators
BTS7960 (Infineon) MOSFET 27V 43A (Peak) ~0.02V at 10A E-bikes, heavy linear actuators, winches

Sources: Texas Instruments Motor Driver Portfolio, All About Circuits H-Bridge Basics.

Worked Numeric Example: Sizing for a 12V Linear Actuator

The most common mistake makers and junior engineers make is sizing an H-bridge for the nominal running current rather than the stall current. Let us look at a real bench scenario.

Load: 12V DC Linear Actuator
Nominal Run Current: 2.5A
Stall Current (Locked Rotor): 12.0A

If you select a standard L298N module because it is rated for '2A continuous', you will face two problems. First, when the actuator hits its physical limit and stalls, it will draw 12A, instantly triggering the L298N's thermal shutdown (or melting the BJT junctions if the heatsink is inadequate). Second, even during normal 2.5A operation, the BJT topology drops about 2.0V across the internal transistors.

Let us calculate the thermal dissipation for the L298N at nominal load:

P = V_drop × I = 2.0V × 2.5A = 5.0 Watts

Dissipating 5W on a small TO-220 package without active cooling will cause the chip to overheat in minutes.

The Correct Choice: The BTS7960. It uses MOSFETs with a combined high-and-low side Rds(on) of roughly 10 milliohms (0.010Ω). Let us run the conduction loss math for the same 2.5A run current:

P = I² × R = (2.5)² × 0.010 = 6.25 × 0.010 = 0.0625 Watts

The BTS7960 will barely rise above ambient temperature. Furthermore, its 43A peak current rating means it will easily handle the 12A stall current for the few seconds it takes your microcontroller to detect the overcurrent and cut the PWM signal. Always size your H-bridge for the stall current, not the running current.

Where You Meet This in Practice

In a real circuit, an H-bridge fundamentally changes how you manage power delivery to inductive loads. Before solid-state H-bridges, reversing a DC motor required a mechanical DPDT (Double Pole, Double Throw) relay. Relays are slow, prone to contact arcing, and cannot handle PWM.

By using an H-bridge, you gain three critical capabilities:

  • PWM Speed Control: By switching the enable pins or the low-side MOSFETs at frequencies between 1kHz and 20kHz, you can vary the effective RMS voltage delivered to the motor, controlling speed without wasting power as heat in a linear resistor.
  • Regenerative Braking: When you turn off the drive switches and turn on both low-side switches, the motor's back-EMF (acting as a generator) is shorted through the low-side MOSFETs and their body diodes back into the power supply. This charges your battery and stops the motor rapidly.
  • Current Sensing: Modern H-bridge ICs (like the DRV8871) include a low-side shunt resistor and an analog output pin that provides a real-time voltage proportional to the motor's current draw. Your ESP32 or Arduino can read this via an ADC to implement closed-loop torque control or detect mechanical jams.

You will find H-bridges inside automotive power window modules, 3D printer extruder motors, RC car Electronic Speed Controllers (ESCs), and hospital bed actuators.

Common Confusions and Fatal Mistakes

When discussing motor control, terminology often gets blurred, leading to incorrect component purchases or blown boards.

Half-Bridge vs. Full H-Bridge

A half-bridge consists of only two switches (one high-side, one low-side). It cannot reverse the polarity of a load. Half-bridges are used in pairs to drive stepper motors (where each coil needs an H-bridge, so two full H-bridges are required, sometimes packaged as dual half-bridges) or in inverters to create AC waveforms. If you need a single DC motor to go forward and reverse, a half-bridge will not work.

Logic-Level vs. Standard MOSFETs

If you are building a discrete H-bridge from raw components rather than using an integrated IC, gate drive voltage is a common trap. A standard power MOSFET like the IRF520 requires 10V on its gate to fully turn on and achieve its rated Rds(on). If you drive it directly from an ESP32 (3.3V logic) or an Arduino Uno (5V logic), the MOSFET will only partially open. It will act like a resistor, overheat, and fail. You must use logic-level MOSFETs (like the IRLZ44N, which fully enhances at 4.5V) or use a dedicated gate driver IC between your microcontroller and the MOSFET gates.

Forgetting Flyback Protection

Motors are inductors. When you abruptly turn off the MOSFETs in an H-bridge, the collapsing magnetic field generates a massive voltage spike (inductive kickback) that can exceed the breakdown voltage of your switches. While almost all modern monolithic H-bridge ICs include internal clamp diodes to safely route this spike back to VCC, if you are building a discrete H-bridge, you must manually add external Schottky flyback diodes across every switch.

Frequently Asked Questions

Why does my motor whine loudly when connected to an H-bridge?

The whine is caused by the PWM frequency falling within the human audible range (typically 1kHz to 4kHz). The physical vibration of the motor windings creates acoustic noise. To fix this, increase your microcontroller's PWM frequency to at least 16kHz or 20kHz, pushing it above the threshold of human hearing. Ensure your H-bridge IC supports the higher switching frequency without excessive switching losses.

Can I use a DC H-bridge to control an AC induction motor?

No. A standard DC H-bridge applies unipolar DC pulses. AC motors require alternating zero-crossings and specific phase angles. To control an AC motor, you need a Variable Frequency Drive (VFD), which uses a three-phase inverter topology (six switches, essentially three half-bridges) and complex Space Vector PWM (SVPWM) algorithms to synthesize a smooth AC sine wave.

What is the difference between a motor driver and a motor controller?

The H-bridge is the driver—it provides the high-current muscle to switch the power rails. The microcontroller (like a Raspberry Pi Pico or Arduino) is the controller—it provides the low-current brain, generating the logic signals, dead-time, and PID loops. Some modules combine both onto a single PCB, but electrically, they remain distinct stages.