Keszoox
28BYJ-48 5V Stepper Motor with ULN2003 Driver Module — 4-Phase, 4096 Steps/Rev, Arduino
28BYJ-48 5V Stepper Motor with ULN2003 Driver Module 4-Phase, 4096 Steps/Rev, Arduino
Couldn't load pickup availability
28BYJ-48 5V Stepper Motor with ULN2003 Driver Module — 4-Phase, 4096 Steps/Rev, Arduino
The 28BYJ-48 is a 5V unipolar 4-phase stepper motor with a 1:64 gear reduction, providing 4096 steps per revolution (in half-step mode) and 5.625° per step (full-step). The included ULN2003 driver board uses four ULN2003A Darlington transistor arrays to drive the motor’s four coils directly from Arduino or ESP32 GPIO pins. This is the most popular stepper motor kit for Arduino beginners, providing precise angular positioning for clock mechanisms, camera sliders, valve actuators, and educational robotics projects.
Key Specifications
| Parameter | Value |
|---|---|
| Motor Model | 28BYJ-48 |
| Supply Voltage | 5V DC |
| Phase | 4-phase unipolar |
| Step Angle (full-step) | 5.625° (64 steps/rev before gear) |
| Gear Ratio | 1:64 (approximately) |
| Steps per Revolution (half-step) | 4096 steps (64 × 64 × 2) |
| No-Load Speed | ~15 RPM (at 5V, half-step) |
| Coil Resistance | ~50Ω per phase |
| Driver Board | ULN2003A (4-channel Darlington array) |
| Driver Input | 4 GPIO pins (IN1–IN4) |
28BYJ-48 vs NEMA 17 — Which Stepper?
| Feature | 28BYJ-48 + ULN2003 | NEMA 17 + A4988/DRV8825 |
|---|---|---|
| Voltage | 5V | 12–24V |
| Torque | Low (~34mN·m) | High (~40–65 N·cm) |
| Steps/rev | 4096 (half-step, with gear) | 200 (1.8°/step) |
| Speed | Slow (~15 RPM) | Fast (up to 1000+ RPM) |
| Driver cost | Very low (ULN2003) | Higher (A4988, DRV8825) |
| Best for | Low-torque precision positioning, education | 3D printer, CNC, high-torque applications |
Why Choose 28BYJ-48 + ULN2003?
- 4096 steps/rev — extremely fine angular resolution for clock hands, camera sliders, and valve control
- 5V operation — powered directly from Arduino 5V pin or USB power bank
- ULN2003 driver included — no additional motor driver IC needed, plug-and-play with Arduino
- Gear reduction — 1:64 gear ratio multiplies torque for driving small loads
- Arduino Stepper library — built-in library support, beginner-friendly
Compatible With
- Arduino UNO/Nano: Arduino Stepper library or AccelStepper library — connect IN1–IN4 to 4 digital pins
- ESP32 / ESP8266: AccelStepper library at 3.3V GPIO (ULN2003 input accepts 3.3V)
- Raspberry Pi: RPi.GPIO with 4-pin step sequence
- MicroPython: machine.Pin + manual step sequence or stepper library
Frequently Asked Questions
Q: How do I control 28BYJ-48 with Arduino?
A: Connect IN1–IN4 on the ULN2003 board to Arduino pins D8–D11. Connect motor power (5V) to Arduino 5V and GND to GND. Use the AccelStepper library: AccelStepper stepper(AccelStepper::HALF4WIRE, 8, 10, 9, 11); stepper.setMaxSpeed(500); stepper.setAcceleration(100); stepper.moveTo(4096); 4096 steps = 1 full revolution in half-step mode.
Q: Why is my 28BYJ-48 vibrating but not rotating?
A: The most common cause is incorrect step sequence. The 28BYJ-48 requires a specific 4-phase step sequence (IN1→IN2→IN3→IN4 or half-step equivalent). If using the Arduino Stepper library, use pin order: IN1, IN3, IN2, IN4 (not IN1, IN2, IN3, IN4). The AccelStepper library with HALF4WIRE mode handles this automatically.
Q: Can I run 28BYJ-48 faster than 15 RPM?
A: The 28BYJ-48 is limited to ~15 RPM at 5V in half-step mode due to the gear ratio and coil inductance. Running faster causes missed steps and loss of torque. For higher speed, use full-step mode (~30 RPM, lower resolution) or switch to a NEMA 17 stepper with A4988 driver for applications requiring speed above 30 RPM.
Package Contents
- 1× 28BYJ-48 5V 4-Phase Stepper Motor
- 1× ULN2003 Driver Board (with LED indicators for each phase)
- 1× Connecting cable (motor to driver board)
