

The 28YBJ-48 is a unipolar stepper motor widely used in robotics, automation, and other precision control applications. It operates on a 5V DC supply and features a 4-phase design, allowing for precise control of rotation and position. This motor is compact, cost-effective, and easy to interface with microcontrollers, making it a popular choice for hobbyists and professionals alike.








Below are the key technical details of the 28YBJ-48 stepper motor:
| Parameter | Value |
|---|---|
| Operating Voltage | 5V DC |
| Step Angle | 5.625°/step |
| Steps per Revolution | 64 steps (gearbox output) |
| Gear Ratio | 1:64 |
| Phases | 4 |
| Drive Type | Unipolar |
| Rated Current per Phase | ~240 mA |
| Torque | ~34 mNm |
| Dimensions | 28 mm diameter, 20 mm height |
| Shaft Diameter | 5 mm |
The 28YBJ-48 motor typically comes with a 5-pin connector for interfacing with a driver module (e.g., ULN2003). Below is the pin configuration:
| Pin Number | Wire Color | Description |
|---|---|---|
| 1 | Orange | Coil A |
| 2 | Yellow | Coil B |
| 3 | Pink | Coil C |
| 4 | Blue | Coil D |
| 5 | Red | Common Power (Vcc) |
Note: The wire colors may vary depending on the manufacturer. Always refer to the datasheet or test the motor to confirm the pinout.
Below is an example code to control the 28YBJ-48 motor using an Arduino UNO and the ULN2003 driver module:
// Example code to control the 28YBJ-48 stepper motor with Arduino UNO
// Ensure the motor is connected to the ULN2003 driver module
#include <Stepper.h>
// Define the number of steps per revolution for the motor
#define STEPS_PER_REV 2048 // 64 steps * 64 gear ratio
// Initialize the Stepper library with the motor's pin connections
Stepper stepper(STEPS_PER_REV, 8, 10, 9, 11);
// Pins 8, 10, 9, 11 correspond to IN1, IN2, IN3, IN4 on the ULN2003
void setup() {
// Set the motor speed (in RPM)
stepper.setSpeed(10); // Adjust speed as needed
Serial.begin(9600);
Serial.println("28YBJ-48 Stepper Motor Test");
}
void loop() {
// Rotate the motor one full revolution clockwise
Serial.println("Rotating clockwise...");
stepper.step(STEPS_PER_REV);
delay(1000); // Wait for 1 second
// Rotate the motor one full revolution counterclockwise
Serial.println("Rotating counterclockwise...");
stepper.step(-STEPS_PER_REV);
delay(1000); // Wait for 1 second
}
Note: Adjust the pin numbers in the
Stepperinitialization if your wiring differs. Ensure the motor's speed is set appropriately to avoid skipping steps.
Motor Not Rotating
Motor Vibrates but Does Not Rotate
Motor Overheating
Inconsistent Movement
Can I power the motor directly from the Arduino? No, the Arduino cannot supply enough current to drive the motor. Always use an external power source and a driver module like the ULN2003.
What is the maximum speed of the 28YBJ-48 motor? The maximum speed depends on the load and power supply but is typically around 15–20 RPM.
Can I use the 28YBJ-48 without a driver module? While possible, it is not recommended. A driver module simplifies control and protects the microcontroller from high currents.
How do I reverse the motor's direction?
To reverse the direction, simply reverse the step sequence in your code or use negative step values in the stepper.step() function.
By following this documentation, you can effectively use the 28YBJ-48 stepper motor in your projects.