Stufin
Home Quick Cart Profile

Stepper Motor(28YBJ-48) with ULN2003 Driver Board

Buy Now on Stufin

Step Angle

5.625 per step

Number of Steps

48 steps per revolution

Holding Torque

34 oz-in (24 Ncm)

Rated Voltage

5V

Rated Current

1.3A per coil

ULN2003 Driver Board

The ULN2003 driver board is a high-voltage, high-current Darlington transistor array specifically designed to drive stepper motors. The board features

Voltage Rating

50V

Current Rating

500mA per channel

Output Resistance

1.5 ohms

Input Logic

5V TTL compatible

Key Features

  • Precise Control: The stepper motor provides precise rotational movements and positioning, making it suitable for applications requiring accurate motor control.
  • High-Torque Density: The motor's high holding torque enables it to handle moderate-to-heavy loads with ease.
  • Efficient Operation: The ULN2003 driver board optimizes motor performance while minimizing power consumption.
  • Easy Integration: The driver board is designed for easy integration with microcontrollers, Arduino boards, and other IoT development platforms.
  • Protection Features: The driver board incorporates built-in protection features, including over-voltage, over-current, and thermal shutdown, to prevent damage to the motor and board.
  • Compact Design: The driver board is compact and lightweight, making it ideal for space-constrained IoT applications.

Functionality

  • Robotics: Robotics arms, robotic platforms, and autonomous vehicles.
  • Automation: Industrial automation, CNC machines, and automated manufacturing systems.
  • Medical Devices: Medical imaging, patient monitoring, and medical robotics.
  • Consumer Electronics: Smart home devices, gaming consoles, and multimedia systems.
The Stepper Motor (28YBJ-48) with ULN2003 Driver Board is designed to provide precise motor control and positioning in a wide range of IoT applications, including

By combining the 28YBJ-48 stepper motor with the ULN2003 driver board, users can achieve precise motor control, high torque, and efficient operation in a wide range of IoT applications.

Pin Configuration

  • Stepper Motor (28YBJ-48) with ULN2003 Driver Board Pinout Explanation
  • The Stepper Motor (28YBJ-48) with ULN2003 Driver Board is a popular combination for precise motor control in various IoT applications. Understanding the pinout of this component is crucial for proper connection and operation. Here's a detailed explanation of each pin:
  • Stepper Motor (28YBJ-48) Pins:
  • 1. A+: Positive terminal of Coil A (Red wire)
  • Connect to ULN2003 Driver Board pin IN1 or IN2 (see below)
  • 2. A-: Negative terminal of Coil A (Blue wire)
  • Connect to ULN2003 Driver Board pin IN3 or IN4 (see below)
  • 3. B+: Positive terminal of Coil B (Yellow wire)
  • Connect to ULN2003 Driver Board pin IN1 or IN2 (see below)
  • 4. B-: Negative terminal of Coil B (White wire)
  • Connect to ULN2003 Driver Board pin IN3 or IN4 (see below)
  • 5. VCC: Motor Power Supply (usually 5V or 12V, depending on the motor's rated voltage)
  • Connect to a suitable power supply or a regulator output
  • ULN2003 Driver Board Pins:
  • 1. IN1: Input 1 (connect to A+ or B+ coil terminal)
  • Controlled by the microcontroller's digital output pin
  • 2. IN2: Input 2 (connect to A+ or B+ coil terminal)
  • Controlled by the microcontroller's digital output pin
  • 3. IN3: Input 3 (connect to A- or B- coil terminal)
  • Controlled by the microcontroller's digital output pin
  • 4. IN4: Input 4 (connect to A- or B- coil terminal)
  • Controlled by the microcontroller's digital output pin
  • 5. VCC: Driver Board Power Supply (usually 5V)
  • Connect to a suitable power supply or a regulator output
  • 6. GND: Ground
  • Connect to the system's ground or a suitable return path
  • Connection Structure:
  • To connect the Stepper Motor (28YBJ-48) to the ULN2003 Driver Board, follow these steps:
  • 1. Connect the motor's A+ coil terminal to either ULN2003 Driver Board's IN1 or IN2 pin.
  • 2. Connect the motor's A- coil terminal to either ULN2003 Driver Board's IN3 or IN4 pin.
  • 3. Connect the motor's B+ coil terminal to the remaining ULN2003 Driver Board IN pin (either IN1, IN2, IN3, or IN4).
  • 4. Connect the motor's B- coil terminal to the remaining ULN2003 Driver Board IN pin (either IN1, IN2, IN3, or IN4).
  • 5. Connect the motor's VCC terminal to a suitable power supply or a regulator output.
  • 6. Connect the ULN2003 Driver Board's VCC pin to a suitable power supply or a regulator output.
  • 7. Connect the ULN2003 Driver Board's GND pin to the system's ground or a suitable return path.
  • Example Connection:
  • A+ (Red wire) -> IN1
  • A- (Blue wire) -> IN3
  • B+ (Yellow wire) -> IN2
  • B- (White wire) -> IN4
  • VCC (Motor) -> 5V Power Supply
  • VCC (ULN2003) -> 5V Power Supply
  • GND (ULN2003) -> System Ground
  • Microcontroller Connection:
  • Connect the microcontroller's digital output pins to the ULN2003 Driver Board's IN1, IN2, IN3, and IN4 pins to control the stepper motor's rotation.
  • Remember to consult the datasheets for the specific Stepper Motor (28YBJ-48) and ULN2003 Driver Board models you are using, as pinouts may vary. Additionally, ensure proper decoupling, filtering, and protection for the motor and driver board to prevent damage and optimize performance.

Code Examples

Component Documentation: Stepper Motor (28YBJ-48) with ULN2003 Driver Board
Overview
The Stepper Motor (28YBJ-48) with ULN2003 Driver Board is a compact and versatile motor control solution for IoT applications. The 28YBJ-48 stepper motor is a 4-phase, 5-wire motor that provides precise rotation and positioning, while the ULN2003 driver board enables easy control and interfaces with various microcontrollers.
Technical Specifications
Stepper Motor (28YBJ-48):
	+ Type: 4-phase, 5-wire
	+ Step Angle: 7.5
	+ Holding Torque: 34 oz-in (24 Ncm)
	+ Rated Voltage: 5V
	+ Rated Current: 0.6A per coil
 ULN2003 Driver Board:
	+ Darlington Transistor Array
	+ 7 inputs, 7 outputs
	+ Input Voltage: 5V
	+ Output Current: 1.5A per channel
Pinout and Connections
The ULN2003 driver board has 7 input pins and 7 output pins. The input pins are connected to the microcontroller, while the output pins are connected to the stepper motor.
| Input Pin | Function |
| --- | --- |
| IN1 | Coil 1A |
| IN2 | Coil 1B |
| IN3 | Coil 2A |
| IN4 | Coil 2B |
| IN5 | Coil 3A |
| IN6 | Coil 3B |
| IN7 | Coil 4A |
Code Examples
### Example 1: Basic Stepper Motor Control using Arduino
This example demonstrates how to control the stepper motor using an Arduino board. The motor will rotate clockwise and counterclockwise in an infinite loop.
```c++
#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 5
void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}
void loop() {
  // Rotate clockwise
  for (int i = 0; i < 100; i++) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
    delay(5);
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
    delay(5);
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
    delay(5);
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
    delay(5);
  }
// Rotate counterclockwise
  for (int i = 0; i < 100; i++) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
    delay(5);
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
    delay(5);
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
    delay(5);
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
    delay(5);
  }
}
```
### Example 2: Stepper Motor Control using Raspberry Pi (Python)
This example demonstrates how to control the stepper motor using a Raspberry Pi board and Python programming language. The motor will rotate clockwise and counterclockwise in an infinite loop.
```python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
IN1 = 17
IN2 = 23
IN3 = 24
IN4 = 25
GPIO.setup(IN1, GPIO.OUT)
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
while True:
    # Rotate clockwise
    for i in range(100):
        GPIO.output(IN1, GPIO.HIGH)
        GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.LOW)
        GPIO.output(IN4, GPIO.LOW)
        time.sleep(0.005)
        GPIO.output(IN1, GPIO.LOW)
        GPIO.output(IN2, GPIO.HIGH)
        GPIO.output(IN3, GPIO.LOW)
        GPIO.output(IN4, GPIO.LOW)
        time.sleep(0.005)
        GPIO.output(IN1, GPIO.LOW)
        GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.HIGH)
        GPIO.output(IN4, GPIO.LOW)
        time.sleep(0.005)
        GPIO.output(IN1, GPIO.LOW)
        GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.LOW)
        GPIO.output(IN4, GPIO.HIGH)
        time.sleep(0.005)
# Rotate counterclockwise
    for i in range(100):
        GPIO.output(IN1, GPIO.LOW)
        GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.LOW)
        GPIO.output(IN4, GPIO.HIGH)
        time.sleep(0.005)
        GPIO.output(IN1, GPIO.LOW)
        GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.HIGH)
        GPIO.output(IN4, GPIO.LOW)
        time.sleep(0.005)
        GPIO.output(IN1, GPIO.LOW)
        GPIO.output(IN2, GPIO.HIGH)
        GPIO.output(IN3, GPIO.LOW)
        GPIO.output(IN4, GPIO.LOW)
        time.sleep(0.005)
        GPIO.output(IN1, GPIO.HIGH)
        GPIO.output(IN2, GPIO.LOW)
        GPIO.output(IN3, GPIO.LOW)
        GPIO.output(IN4, GPIO.LOW)
        time.sleep(0.005)
```
Note: Make sure to adjust the pin numbers according to your specific microcontroller and connection setup.
### Example 3: Stepper Motor Control using ESP32 (MicroPython)
This example demonstrates how to control the stepper motor using an ESP32 board and MicroPython programming language. The motor will rotate clockwise and counterclockwise in an infinite loop.
```python
import machine
import utime
IN1 = machine.Pin(18, machine.Pin.OUT)
IN2 = machine.Pin(19, machine.Pin.OUT)
IN3 = machine.Pin(21, machine.Pin.OUT)
IN4 = machine.Pin(22, machine.Pin.OUT)
while True:
    # Rotate clockwise
    for i in range(100):
        IN1.value(1)
        IN2.value(0)
        IN3.value(0)
        IN4.value(0)
        utime.sleep(0.005)
        IN1.value(0)
        IN2.value(1)
        IN3.value(0)
        IN4.value(0)
        utime.sleep(0.005)
        IN1.value(0)
        IN2.value(0)
        IN3.value(1)
        IN4.value(0)
        utime.sleep(0.005)
        IN1.value(0)
        IN2.value(0)
        IN3.value(0)
        IN4.value(1)
        utime.sleep(0.005)
# Rotate counterclockwise
    for i in range(100):
        IN1.value(0)
        IN2.value(0)
        IN3.value(0)
        IN4.value(1)
        utime.sleep(0.005)
        IN1.value(0)
        IN2.value(0)
        IN3.value(1)
        IN4.value(0)
        utime.sleep(0.005)
        IN1.value(0)
        IN2.value(1)
        IN3.value(0)
        IN4.value(0)
        utime.sleep(0.005)
        IN1.value(1)
        IN2.value(0)
        IN3.value(0)
        IN4.value(0)
        utime.sleep(0.005)
```
Note: Make sure to adjust the pin numbers according to your specific microcontroller and connection setup.
Remember to adjust the delay values and rotation steps according to your specific motor and application requirements.