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

Arduino UNO Controlled Stepper Motor with ULN2003A Driver

View and Edit Project In Cirkit DesignerImage of Arduino UNO Controlled Stepper Motor with ULN2003A Driver

Circuit Documentation

Summary

This circuit is designed to control a 28BYJ-48 stepper motor using an Arduino UNO and a ULN2003A breakout board. The Arduino UNO sends control signals to the ULN2003A, which in turn drives the stepper motor. The circuit allows for precise control of the stepper motor's position and speed.

Component List

  1. 28BYJ-48 Stepper Motor

    • Description: A small, inexpensive stepper motor commonly used in various applications for precise control of rotation.
    • Pins: BLUE, PINK, YELLOW, ORANGE, RED
  2. ULN2003A Breakout Board

    • Description: A Darlington transistor array used to drive the stepper motor. It receives control signals from the Arduino and powers the stepper motor.
    • Pins: In 1, In 2, In 3, In 4, In 5, In 6, In 7, 0V, +5V, ON/OFF jumper switch, BLUE wire, PINK wire, YELLOW wire, ORANGE wire, RED wire
  3. Arduino UNO

    • Description: A microcontroller board based on the ATmega328P. It is used to send control signals to the ULN2003A breakout board.
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0

Wiring Details

28BYJ-48 Stepper Motor

ULN2003A Breakout Board

Arduino UNO

Code Documentation

Arduino UNO Code

#include <Stepper.h>
#define STEPS 32

Stepper stepper(STEPS, 8, 9, 10, 11);
int val = 0;

void setup() {
    Serial.begin(9600);
    stepper.setSpeed(200);
}

void loop() {
    if (Serial.available() > 0) { 
        val = Serial.parseInt();
        stepper.step(val);
        Serial.println(val);
    }
}

Description: