- All products
- Robotics
- Motors
- Stepper Motor 12V With ULN2003 H Bridge Motor Controller For Arduino
- Motors
With its internal gear reduction mechanism and precise step angle control, the 28BYJ-48 stepper motor can achieve smooth and stable motion. The plug-and-play connector between the motor and driver board allows quick installation, making this module ideal for beginners and professional developers alike.
Features:
- Compact and lightweight stepper motor
- Includes ULN2003 stepper motor driver board
- Four-phase stepper motor control
- Built-in LED indicators for motor phase status
- Standard interface for easy connection to development boards
- Plug-and-play motor connector for quick setup
- High torque output with internal gear reduction
- Suitable for Arduino, Raspberry Pi, and microcontroller projects
- Stable and precise step control
Principle of Work:
A stepper motor operates by rotating in small discrete steps instead of continuous rotation. Inside the 28BYJ-48 motor, electromagnetic coils are energized in a specific sequence. This sequence generates a rotating magnetic field that causes the motor shaft to move step by step.
The ULN2003 driver board acts as an interface between the microcontroller and the stepper motor. It amplifies the control signals coming from the microcontroller and drives the motor coils with sufficient current. By activating the coils in the correct order through the IN1 to IN4 control pins, the motor rotates in precise increments.
The internal gear reduction system improves torque while reducing the output speed, allowing the motor to deliver controlled and accurate movement.
Pinout of the Driver Module:
- IN1: Control signal for motor phase 1
- IN2: Control signal for motor phase 2
- IN3: Control signal for motor phase 3
- IN4: Control signal for motor phase 4
- VCC: Power supply input
- GND: Ground connection
- Motor Connector: Interface for connecting the 28BYJ-48 motor

Applications:
- Robotics projects
- Automated positioning systems
- Camera sliders and pan-tilt mechanisms
- Small CNC and mechanical automation
- Educational electronics projects
- Smart home automation devices
- Precision movement control systems
Circuit:
The ULN2003 driver board connects directly to the stepper motor using the provided connector cable. The control inputs IN1 to IN4 are connected to digital output pins on a microcontroller such as Arduino. The VCC and GND pins supply power to the driver board. When the microcontroller sends control signals to the driver inputs, the ULN2003 sequentially energizes the motor coils to produce rotation.
Connecting with Arduino

- Connect IN4 to Arduino pin 8.
- Connect IN3 to Arduino pin 9.
- Connect IN2 to Arduino pin 10.
- Connect IN1 to Arduino pin 11.
- Connect VCC to 5V or an external supply.
- Connect GND to Arduino GND.
- Plug the motor connector into the ULN2003 driver board.
Code:
#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
myStepper.setSpeed(10);
Serial.begin(9600);
}
void loop() {
Serial.println("Clockwise");
myStepper.step(stepsPerRevolution);
delay(1000);
Serial.println("Counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(1000);
}
Technical Details:
- Motor Model: 28BYJ-48
- Operating Voltage: 12V
- Motor Diameter: 28 mm
- Step Angle: 5.625° × 1/64
- Reduction Ratio: 1:64
- Motor Type: 5-wire 4-phase stepper motor
- Driver IC: ULN2003
- Driver Inputs: IN1, IN2, IN3, IN4
Resources:
Comparisons:
Compared with DC motors, the 28BYJ-48 stepper motor offers several advantages for controlled motion applications:
- Precise Position Control: Moves in accurate steps rather than continuous rotation.
- No Feedback Required: Position can be controlled without encoders.
- Higher Torque at Low Speed: Gear reduction improves torque output.
- Simple Control Interface: Easily controlled using a microcontroller and driver board.
- Ideal for Automation: Suitable for robotics and positioning systems.
With its internal gear reduction mechanism and precise step angle control, the 28BYJ-48 stepper motor can achieve smooth and stable motion. The plug-and-play connector between the motor and driver board allows quick installation, making this module ideal for beginners and professional developers alike.
Features:
- Compact and lightweight stepper motor
- Includes ULN2003 stepper motor driver board
- Four-phase stepper motor control
- Built-in LED indicators for motor phase status
- Standard interface for easy connection to development boards
- Plug-and-play motor connector for quick setup
- High torque output with internal gear reduction
- Suitable for Arduino, Raspberry Pi, and microcontroller projects
- Stable and precise step control
Principle of Work:
A stepper motor operates by rotating in small discrete steps instead of continuous rotation. Inside the 28BYJ-48 motor, electromagnetic coils are energized in a specific sequence. This sequence generates a rotating magnetic field that causes the motor shaft to move step by step.
The ULN2003 driver board acts as an interface between the microcontroller and the stepper motor. It amplifies the control signals coming from the microcontroller and drives the motor coils with sufficient current. By activating the coils in the correct order through the IN1 to IN4 control pins, the motor rotates in precise increments.
The internal gear reduction system improves torque while reducing the output speed, allowing the motor to deliver controlled and accurate movement.
Pinout of the Driver Module:
- IN1: Control signal for motor phase 1
- IN2: Control signal for motor phase 2
- IN3: Control signal for motor phase 3
- IN4: Control signal for motor phase 4
- VCC: Power supply input
- GND: Ground connection
- Motor Connector: Interface for connecting the 28BYJ-48 motor

Applications:
- Robotics projects
- Automated positioning systems
- Camera sliders and pan-tilt mechanisms
- Small CNC and mechanical automation
- Educational electronics projects
- Smart home automation devices
- Precision movement control systems
Circuit:
The ULN2003 driver board connects directly to the stepper motor using the provided connector cable. The control inputs IN1 to IN4 are connected to digital output pins on a microcontroller such as Arduino. The VCC and GND pins supply power to the driver board. When the microcontroller sends control signals to the driver inputs, the ULN2003 sequentially energizes the motor coils to produce rotation.
Connecting with Arduino

- Connect IN4 to Arduino pin 8.
- Connect IN3 to Arduino pin 9.
- Connect IN2 to Arduino pin 10.
- Connect IN1 to Arduino pin 11.
- Connect VCC to 5V or an external supply.
- Connect GND to Arduino GND.
- Plug the motor connector into the ULN2003 driver board.
Code:
#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
myStepper.setSpeed(10);
Serial.begin(9600);
}
void loop() {
Serial.println("Clockwise");
myStepper.step(stepsPerRevolution);
delay(1000);
Serial.println("Counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(1000);
}
Technical Details:
- Motor Model: 28BYJ-48
- Operating Voltage: 12V
- Motor Diameter: 28 mm
- Step Angle: 5.625° × 1/64
- Reduction Ratio: 1:64
- Motor Type: 5-wire 4-phase stepper motor
- Driver IC: ULN2003
- Driver Inputs: IN1, IN2, IN3, IN4
Resources:
Comparisons:
Compared with DC motors, the 28BYJ-48 stepper motor offers several advantages for controlled motion applications:
- Precise Position Control: Moves in accurate steps rather than continuous rotation.
- No Feedback Required: Position can be controlled without encoders.
- Higher Torque at Low Speed: Gear reduction improves torque output.
- Simple Control Interface: Easily controlled using a microcontroller and driver board.
- Ideal for Automation: Suitable for robotics and positioning systems.

