Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino Mega 2560 Controlled Multi-Stepper Motor System with DC Buck Step-down Power Supply

Image of Arduino Mega 2560 Controlled Multi-Stepper Motor System with DC Buck Step-down Power Supply

Circuit Documentation

Summary

This document provides a detailed overview of a stepper motor control system powered by an Arduino Mega 2560. The system includes multiple stepper motors driven by TB6600 and A4988 drivers, as well as ULN2003A breakout boards for additional control. The power supply is managed by XL4015 5A DC Buck Step-down converters, which are fed by an MW LRS-350-24 power supply. The Arduino Mega 2560 is programmed to control the stepper motors through various pins.

Component List

  1. XL4015 5A DC Buck Step-down

    • Description: DC-DC step-down converter
    • Pins: Output +, Output -, Input +, Input -
  2. Arduino Mega 2560

    • Description: Microcontroller board
    • Pins: IOREF, RESET, 3V3, 5V, GND, VIN, A0-A15, D0-D53, AREF, SDA, SCL
  3. TB6600 Micro Stepping Motor Driver

    • Description: Stepper motor driver
    • Pins: ENA-, ENA+, DIR-, DIR+, PUL-, PUL+, B-, B+, A-, A+, GND, VCC
  4. 28BYJ-48 Stepper Motor

    • Description: Stepper motor
    • Pins: BLUE, PINK, YELLOW, ORANGE, RED
  5. ULN2003A Breakout Board

    • Description: Darlington transistor array
    • 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
  6. Nema 17 42-STH48

    • Description: Stepper motor
    • Pins: A2 (black), A1 Green, B2 Red, B1 Blue
  7. MW LRS-350-24

    • Description: AC-DC power supply
    • Pins: +24V Output, -24V Output, GND, N, L
  8. A4988 Stepper Motor Driver (Red)

    • Description: Stepper motor driver
    • Pins: ENABLE, MS1, MS2, MS3, RESET, SLEEP, STEP, DIR, VMOT, GND, 2B, 2A, 1A, 1B, VDD

Wiring Details

XL4015 5A DC Buck Step-down

  • Input + connected to +24V Output of MW LRS-350-24
  • Input - connected to -24V Output of MW LRS-350-24
  • Output + connected to:
    • +5V of ULN2003A breakout board
    • VDD of A4988 Stepper Motor Driver (Red)
  • Output - connected to:
    • 0V of ULN2003A breakout board
    • GND of A4988 Stepper Motor Driver (Red)

Arduino Mega 2560

  • 5V connected to +5V of ULN2003A breakout board
  • GND connected to 0V of ULN2003A breakout board
  • D2 PWM connected to In 4 of ULN2003A breakout board
  • D3 PWM connected to In 3 of ULN2003A breakout board
  • D4 PWM connected to In 2 of ULN2003A breakout board
  • D5 PWM connected to In 1 of ULN2003A breakout board
  • D6 PWM connected to In 4 of ULN2003A breakout board
  • D7 PWM connected to In 3 of ULN2003A breakout board
  • D8 PWM connected to In 2 of ULN2003A breakout board
  • D9 PWM connected to In 1 of ULN2003A breakout board
  • D10 PWM connected to DIR of A4988 Stepper Motor Driver (Red)
  • D11 PWM connected to STEP of A4988 Stepper Motor Driver (Red)
  • D12 PWM connected to DIR+ of TB6600 Micro Stepping Motor Driver
  • D13 PWM connected to PUL+ of TB6600 Micro Stepping Motor Driver

TB6600 Micro Stepping Motor Driver

  • DIR+ connected to D12 PWM of Arduino Mega 2560
  • PUL+ connected to D13 PWM of Arduino Mega 2560
  • DIR- connected to PUL- and GND of Arduino Mega 2560
  • GND connected to Output - of XL4015 5A DC Buck Step-down
  • VCC connected to Output + of XL4015 5A DC Buck Step-down

A4988 Stepper Motor Driver (Red)

  • DIR connected to D10 PWM of Arduino Mega 2560
  • STEP connected to D11 PWM of Arduino Mega 2560
  • GND connected to Output - of XL4015 5A DC Buck Step-down
  • VMOT connected to Output + of XL4015 5A DC Buck Step-down
  • RESET connected to SLEEP

ULN2003A Breakout Board

  • +5V connected to 5V of Arduino Mega 2560
  • 0V connected to GND of Arduino Mega 2560
  • In 1 connected to D5 PWM of Arduino Mega 2560
  • In 2 connected to D4 PWM of Arduino Mega 2560
  • In 3 connected to D3 PWM of Arduino Mega 2560
  • In 4 connected to D2 PWM of Arduino Mega 2560

Code Documentation

/*
 * Arduino Mega 2560 Controlled Stepper Motor System
 * with DC Buck Step-down Power Supply
 *
 * This code controls multiple stepper motors using the Arduino Mega 2560.
 * The system includes a DC Buck Step-down power supply to provide the
 * necessary voltage levels. The stepper motors are driven by TB6600 and
 * A4988 drivers, and ULN2003A breakout boards are used for additional
 * control. The code initializes the pins and provides basic control
 * functionality for the stepper motors.
 */

// Pin definitions for TB6600 driver
const int tb6600_pul = 13; // PUL+ connected to D13 PWM
const int tb6600_dir = 12; // DIR+ connected to D12 PWM

// Pin definitions for A4988 driver
const int a4988_step = 11; // STEP connected to D11 PWM
const int a4988_dir = 10;  // DIR connected to D10 PWM

// Pin definitions for ULN2003A breakout boards
const int uln2003a1_in1 = 5; // In 1 connected to D5 PWM
const int uln2003a1_in2 = 4; // In 2 connected to D4 PWM
const int uln2003a1_in3 = 3; // In 3 connected to D3 PWM
const int uln2003a1_in4 = 2; // In 4 connected to D2 PWM
const int uln2003a2_in1 = 9; // In 1 connected to D9 PWM
const int uln2003a2_in2 = 8; // In 2 connected to D8 PWM
const int uln2003a2_in3 = 7; // In 3 connected to D7 PWM
const int uln2003a2_in4 = 6; // In 4 connected to D6 PWM

void setup() {
  // Initialize TB6600 driver pins
  pinMode(tb6600_pul, OUTPUT);
  pinMode(tb6600_dir, OUTPUT);

  // Initialize A4988 driver pins
  pinMode(a4988_step, OUTPUT);
  pinMode(a4988_dir, OUTPUT);

  // Initialize ULN2003A breakout board pins
  pinMode(uln2003a1_in1, OUTPUT);
  pinMode(uln2003a1_in2, OUTPUT);
  pinMode(uln2003a1_in3, OUTPUT);
  pinMode(uln2003a1_in4, OUTPUT);
  pinMode(uln2003a2_in1, OUTPUT);
  pinMode(uln2003a2_in2, OUTPUT);
  pinMode(uln2003a2_in3, OUTPUT);
  pinMode(uln2003a2_in4, OUTPUT);