Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use 28BYJ-48: Examples, Pinouts, and Specs

Image of 28BYJ-48Design with 28BYJ-48 in Cirkit Designer

Introduction

The 28BYJ-48 is a unipolar stepper motor manufactured by xxxxxxx with the part ID 28BYJ-48 driver. This motor is widely used in robotics, automation, and DIY electronics projects due to its affordability, reliability, and precise control capabilities. It features a 5-phase design, enabling accurate rotation and positioning. The motor is typically paired with a ULN2003 driver board, which simplifies interfacing with microcontrollers such as Arduino.

Explore Projects Built with 28BYJ-48

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Arduino Mega 2560-Controlled Stepper Motors with RFID Access and Traffic Light Indication: A project utilizing 28BYJ-48 in a practical application
Arduino Mega 2560-Controlled Stepper Motors with RFID Access and Traffic Light Indication

This circuit controls two 28BYJ-48 stepper motors using A4988 stepper motor driver carriers, interfaced with an Arduino Mega 2560 microcontroller. It features an RFID-RC522 module for RFID reading, a 16x4 LCD display with I2C interface for user interaction, and a piezo speaker for audio feedback. Additionally, there is a traffic light module controlled by the Arduino, and a 48V to 5V converter to step down voltage for the logic levels. The power supply provides 12V to the motor drivers and is connected to a standard power outlet.

Open Project in Cirkit Designer
Image of RFID-Activated Traffic Light Controller with Auditory Feedback Using Arduino Mega: A project utilizing 28BYJ-48 in a practical application
RFID-Activated Traffic Light Controller with Auditory Feedback Using Arduino Mega

This circuit is designed to control two 28BYJ-48 stepper motors using A4988 stepper motor driver carriers, with an Arduino Mega 2560 as the central microcontroller. It includes an RFID-RC522 module for RFID reading, an LCD display for user interface, and a traffic light and piezo speaker for visual and audio signaling. The circuit is powered by a 12V 5A power supply, which is stepped down to 5V for logic level components, and it interfaces with a power outlet for AC to DC conversion.

Open Project in Cirkit Designer
Image of Arduino Mega 2560-Based RFID and Stepper Motor Control System with I2C LCD Display: A project utilizing 28BYJ-48 in a practical application
Arduino Mega 2560-Based RFID and Stepper Motor Control System with I2C LCD Display

This circuit features an Arduino Mega 2560 microcontroller interfacing with multiple components including four 28BYJ-48 stepper motors controlled via ULN 2003 drivers, a 16x2 I2C LCD for display, an RFID-RC522 module for RFID reading, and a 4x4 membrane matrix keypad for user input. The setup is designed for applications requiring motor control, user interaction, and RFID-based identification.

Open Project in Cirkit Designer
Image of Wi-Fi Controlled Environmental Monitoring System with Dual Stepper Motor Valve Actuation: A project utilizing 28BYJ-48 in a practical application
Wi-Fi Controlled Environmental Monitoring System with Dual Stepper Motor Valve Actuation

This circuit features two 28BYJ-48 stepper motors controlled by ULN2003A breakout boards, interfaced with a NodeMCU V3 ESP8266 microcontroller. The NodeMCU collects environmental data from a DHT11 temperature and humidity sensor and an MQ-135 air quality sensor. The microcontroller uses WiFi for connectivity and controls the stepper motors based on the sensor inputs, likely for regulating environmental conditions.

Open Project in Cirkit Designer

Common Applications

Technical Specifications

Below are the key technical details of the 28BYJ-48 stepper motor:

Parameter Value
Operating Voltage 5V DC
Step Angle 5.625° (64 steps per revolution)
Gear Ratio 1:64
Phases 4
Drive Type Unipolar
Rated Current 240 mA
Coil Resistance ~50 Ω
Holding Torque ~300 gf.cm
Dimensions 28 mm diameter, 20 mm height
Shaft Diameter 5 mm

Pin Configuration (ULN2003 Driver Board)

The 28BYJ-48 is commonly used with the ULN2003 driver board. Below is the pin configuration for the driver board:

Pin Name Description
IN1 Input for Coil A
IN2 Input for Coil B
IN3 Input for Coil C
IN4 Input for Coil D
VCC Power supply (5V)
GND Ground
Motor Pins Connects to the 28BYJ-48 motor (4 pins)

Usage Instructions

Connecting the 28BYJ-48 to an Arduino UNO

To use the 28BYJ-48 stepper motor with an Arduino UNO, follow these steps:

  1. Connect the 4-pin connector of the motor to the ULN2003 driver board.
  2. Connect the ULN2003 board to the Arduino as follows:
    • IN1 → Arduino Pin 8
    • IN2 → Arduino Pin 9
    • IN3 → Arduino Pin 10
    • IN4 → Arduino Pin 11
  3. Connect the VCC and GND pins of the ULN2003 board to the 5V and GND pins of the Arduino, respectively.
  4. Power the Arduino and upload the control code.

Sample Arduino Code

Below is an example code to control the 28BYJ-48 stepper motor using the Arduino Stepper library:

#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);

void setup() {
  stepper.setSpeed(10);  // Set motor speed to 10 RPM
  Serial.begin(9600);   // Initialize serial communication
  Serial.println("28BYJ-48 Stepper Motor Test");
}

void loop() {
  Serial.println("Rotating clockwise...");
  stepper.step(STEPS_PER_REV);  // Rotate one full revolution clockwise
  delay(1000);                  // Wait for 1 second

  Serial.println("Rotating counterclockwise...");
  stepper.step(-STEPS_PER_REV); // Rotate one full revolution counterclockwise
  delay(1000);                  // Wait for 1 second
}

Important Considerations

Troubleshooting and FAQs

Common Issues

  1. Motor Not Rotating

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check the connections between the motor, driver board, and Arduino. Ensure the power supply provides 5V.
  2. Motor Vibrates but Does Not Rotate

    • Cause: Incorrect step sequence or low current.
    • Solution: Verify the control code and ensure the step sequence matches the motor's requirements. Check the power supply.
  3. Motor Overheating

    • Cause: Prolonged operation at high current.
    • Solution: Reduce the operating time or use a heat sink to dissipate heat.
  4. Inconsistent Movement

    • Cause: Loose connections or insufficient power.
    • Solution: Secure all connections and ensure a stable power supply.

FAQs

This concludes the documentation for the 28BYJ-48 stepper motor.