🛒 Arduino, ESP32 & modules

Motors and Drivers

Motors and drivers — SG90 servo, 28BYJ-48 stepper motor and L298N, A4988, TMC2208/TMC2209, ULN2003 driver modules. For robots, robot arms, 3D printers, CNC and automatic doors.

Motors and Drivers — buying guide

The motor provides motion, but the board pin is not powerful enough to drive it directly. That’s why in the Motors and Drivers section you choose a motor together with the driver that controls it.

Which one to choose?

Which driver for which motor?

  • DC motor: rotates continuously. Speed is controlled by PWM, direction by an H-bridge, which is what the L298N does.
  • Servo: no separate driver is needed; the board sets the angle with a single signal pin.
  • Small unipolar stepper motor: ULN2003.
  • Bipolar stepper motor: A4988, or TMC2209 if you want quieter operation.

Why isn’t the motor connected directly to the board pin?

An Arduino pin can supply only a few tens of milliamps, while even a small motor draws hundreds of milliamps. On top of that, when the motor stops, the voltage spike induced in the winding can burn the pin. The driver handles this current, and the board only provides the control signals.

Typical projects

  • Two‑wheeled obstacle‑avoiding robot.
  • Robot arm that holds its angle precisely.
  • Small CNC mechanism driven by a stepper motor.

Related categories

Which motor should I choose for a robot?

Use DC motors with an L298N for the wheels. Use a servo to rotate a sensor or for an arm. If you need precise positioning, use a stepper motor.

Why does the board restart when the motor starts?

When the motor starts, it causes the supply voltage to drop. Power the motor from a separate supply and connect the GNDs together.