Skip to content

Motors & Drivers

Side-by-side comparison

Driver / motor Type Voltage Current Control Best for
L298N Dual H-bridge IC 5–35 V motor, 5 V logic 2 A / channel, 3 A peak PWM (EN) + direction (IN1/IN2) DC motors up to ~2 A, bipolar steppers
SG90 Servo Hobby servo (geared DC) 4.8–6 V 550 mA stall 50 Hz PWM, 1–2 ms pulse Pan/tilt, RC, fast 180° positioning
28BYJ-48 + ULN2003 Unipolar geared stepper 5 V (or 12 V model) 160 mA / phase 4-pin step sequencing Precise low-torque positioning (~300 g·cm)

Common questions

L298N vs L293D — which motor driver?

L298N — 2 A per channel vs L293D's 600 mA. L298N is the better default for any serious DC motor. L293D only for tiny gear motors (<200 mA).

Why does my SG90 servo crash the Arduino?

Servos can pull 500–600 mA at stall. The Uno's onboard 5 V regulator outputs ~500 mA total. Power the servo from a separate 5 V supply (2 A minimum) and tie the grounds together.

28BYJ-48 vs NEMA 17 stepper?

28BYJ-48 = unipolar, 5 V/12 V, ~300 g·cm torque after 64:1 gearbox, very cheap, low-torque hobby use. NEMA 17 = bipolar, 12 V, 40+ N·cm torque, used in 3D printers and CNC. Needs a bipolar driver (A4988 / DRV8825 / TMC2209), not ULN2003.

Why is my L298N motor much slower than expected?

The L298N drops 1.8–3 V across each H-bridge. With a 12 V supply your motor sees ~9 V. For higher efficiency at lower voltages use a MOSFET driver (DRV8833, TB6612FNG) instead.

Stepper motor jitters / skips steps?

Common fixes: (1) reduce PWM speed below 15 RPM on 28BYJ-48 — it has a low max RPM; (2) increase motor supply current; (3) use Stepper.h proper step sequence; (4) check wire colors match driver pinout.

Last updated: 2026-05-13 · Source on GitHub