← Mechatronics Studio
🔌

PWM Duty-Cycle & H-Bridge Selector

Speed control duty cycle + motor driver recommendation

When to use: Find the PWM duty cycle needed to drive a brushed DC motor at a target average voltage (speed), see the on/off timing at your chosen PWM frequency, and get a driver IC / H-bridge module recommendation sized to your motor's continuous and stall current.

Speed / PWM
V
Sets duty cycle → speed
V
15–25 kHz avoids audible whine
Hz
Driver Sizing
A
From datasheet, or ≈ 3–5× continuous
A
V
Duty Cycle
75.0%
PWM Timing
Period50.0 μs
On-time37.5 μs
Off-time12.5 μs
Recommended driver: DRV8871
Single-channel, good for one moderate-current brushed DC motor.

About the PWM Duty-Cycle & H-Bridge Selector

This tool calculates the PWM duty cycle needed to drive a brushed DC motor at a target average voltage, shows the resulting on/off timing at your chosen switching frequency, and recommends an H-bridge motor driver sized to your motor's continuous and stall current draw.

How PWM speed control works

A PWM (pulse-width modulation) motor driver switches the full supply voltage on and off rapidly rather than regulating a lower voltage linearly, which avoids wasting power as heat. The motor's inductance and the mechanical inertia of the rotor smooth the rapid on/off pulses into an effective average voltage, approximately V_avg = V_supply × duty cycle. So a 12V supply switched at a 50% duty cycle delivers roughly 6V worth of average drive to the motor, which produces roughly half the motor's rated free-running speed under light load (motor speed is roughly proportional to average voltage for a given load torque).

Choosing a PWM frequency

PWM frequency for small brushed DC motors is typically chosen in the 15–25 kHz range. Below about 15–18 kHz, the switching frequency itself (and the resulting current ripple through the motor windings) can fall into the audible range and produce an audible whine from the motor. Frequencies well above 25 kHz work electrically but increase switching losses in the driver, generating more heat for no control benefit in a typical brushed DC application. Very low frequencies (a few hundred Hz) are sometimes used deliberately for large motors or specific applications, but for the great majority of small-to-mid DC motor control, 20 kHz is a safe default that's inaudible and keeps switching losses low.

Sizing the H-bridge driver

An H-bridge or motor driver IC must be sized to two different current figures from the motor's datasheet: continuous (running) current, which the driver must sustain without overheating, and stall current, the much higher current the motor draws for a brief moment at zero RPM under load (such as at startup, or if the mechanism jams) — brushed DC motor stall current is commonly 3–5× the rated continuous current. The driver's continuous current rating should exceed the motor's continuous draw with margin (this tool applies roughly 25% headroom), and its peak/surge current rating should cover the stall current, at least briefly — most driver ICs specify a peak rating for exactly this transient condition, along with a thermal shutdown or current-limit feature that protects the driver if a stall is sustained.

How to use this calculator

Enter the motor's rated voltage and the average voltage you want to drive it at — the ratio between them sets the duty cycle. Enter your chosen PWM frequency to see the resulting on-time and off-time per cycle. Enter the motor's continuous and stall current (from its datasheet, or a reasonable estimate) and your supply voltage to get a driver recommendation. Treat the recommendation as a starting point — always check the specific driver's datasheet for its actual continuous current rating at your ambient temperature and with whatever heatsinking you plan to use, since published current ratings often assume ideal cooling.

Frequently asked questions

Does PWM duty cycle map linearly to motor speed?

Approximately, but not exactly. Average voltage does scale linearly with duty cycle (V_avg = V_supply × duty), and motor speed is roughly proportional to applied voltage for a fixed load — but at very low duty cycles, the motor may not produce enough torque to overcome static friction and won't turn at all (this minimum is sometimes called the motor's "dead zone"), and the speed/duty relationship is only linear if the load torque stays constant as speed changes, which isn't true for loads like fans or pumps.

Why does stall current matter if the motor is only stalled briefly?

Two reasons: first, many practical control moves (starting from a stop, or driving into a mechanical limit) DO pass through near-stall current, even briefly, and an underrated driver can be damaged or trip a fault in that moment. Second, if something jams — a robot arm hits an obstruction, a linear actuator reaches an unexpected hard stop — the motor can sit at stall current for longer than intended, and only a driver with adequate peak rating and thermal protection survives that fault condition without damage.

What is the difference between a driver's continuous and peak current rating?

Continuous (or "RMS") current is what the driver can sustain indefinitely without exceeding its thermal limits, assuming the datasheet's stated cooling conditions. Peak (or "surge") current is a much higher figure the driver can handle for a short duration — often specified in milliseconds to a few seconds — before its internal thermal protection has to intervene. Motor stall current should be checked against the peak rating, not the continuous rating, since a stall is by definition a transient (or fault) condition, not steady-state operation.

Can I use a single H-bridge to drive multiple motors?

Only if you're driving them in parallel as a single electrical load (same speed and direction always) and the combined current stays within the driver's rating — most H-bridge ICs have two independent half-bridge channels meant for two separate motors (or one motor in full-bridge/4-quadrant mode), not for paralleling multiple motors on one channel. For independently-controlled motors, use one driver channel per motor, or a multi-channel driver module sized for the total current.

Why does the recommended driver change so much between the L298N and the BTS7960 module?

The L298N uses bipolar transistor outputs with a relatively high voltage drop (roughly 2V total across the bridge), which limits its practical continuous current to around 2A per channel before it overheats even with a heatsink. The BTS7960 (commonly sold as the "IBT-2" module) uses MOSFET outputs with a much lower on-resistance, so it dissipates far less heat per amp and can sustain tens of amps continuously with adequate heatsinking — the jump in the recommendation reflects a real, large gap in what these two commonly-available driver technologies can handle.

🎓

Try our Mechatronics Studio

More calculators, simulators, and guides for this discipline.

Related tools & guides

Gear Ratio & Torque CalculatorLinear Actuator Sizing CalculatorMicrocontroller-to-Actuator Interfacing GuideServo vs Stepper Motors Guide