DC & Brushless Motors for Robots

A DC motor converts direct-current electricity into continuous rotation, making it the go-to choice for robot wheels and propellers. You control its speed with PWM (switching power on and off rapidly) and its direction with an H-bridge driver. Brushed DC motors are cheap and simple; brushless (BLDC) motors are faster and longer-lived.

When your robot needs to keep spinning — wheels, fans, propellers — a DC motor is the answer, where a servo or stepper would be the wrong tool. Let's see how speed control works.

How DC motor speed control works

You might think you'd slow a motor by lowering its voltage — but that wastes power and weakens torque. Instead robots use PWM: flick full power on and off thousands of times a second. The longer each pulse stays "on" (the duty cycle), the higher the average voltage and the faster the spin. Drag the slider to see it.

Duty: 50% → Speed: ~3,000 RPM

A DC motor's speed depends on the average voltage it sees. Instead of a dimmer, we switch full power on and off thousands of times a second (PWM). More "on" time per pulse = higher average voltage = faster spin.

Brushed vs brushless DC motors

Brushed DC motors

Carbon brushes physically touch the spinning rotor to switch current. Dirt cheap and dead simple to drive — perfect for beginner robot wheels. Downsides: the brushes wear out, spark, and waste a little energy as friction.

Brushless DC motors (BLDC)

No brushes — an electronic controller (ESC) switches the coils instead. The result is higher efficiency, far higher speed (drone propellers hit 10,000+ RPM), and a much longer life. Add an encoder and a PID controller and a BLDC becomes a precise robot joint.

Gearboxes: trading speed for torque

A bare DC motor spins fast but can barely push anything. A gearbox fixes that: a 100:1 reduction spins 100× slower with roughly 100× the torque. "Gear motors" — a DC motor with a gearbox bolted on — are what most wheeled robots actually use.

Driving a DC motor

A microcontroller pin can't power a motor directly. You need a driver with an H-bridge — like the L298N or DRV8833 — which supplies the current and lets you set both speed (PWM) and direction. For brushless motors you use an ESC instead.