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

Arduino-Controlled DRV8825 Stepper Motor Driver Circuit

View and Edit Project In Cirkit DesignerImage of Arduino-Controlled DRV8825 Stepper Motor Driver Circuit

Circuit Documentation

Summary

This circuit is designed to control a unipolar stepper motor using a DRV8825 stepper motor driver module, which is interfaced with an Arduino UNO microcontroller. The DRV8825 module allows for precise control of the motor steps, while the Arduino UNO is programmed to set the direction and speed of the motor. An electrolytic capacitor is used to stabilize the power supply to the motor driver. The power supply provides the necessary voltage and current to drive the motor.

Component List

DRV 8825 Stepper Motor Driver

Stepper Motor (Unipolar)

Arduino UNO

Electrolytic Capacitor

Power Supply

Wiring Details

DRV 8825 Stepper Motor Driver

Stepper Motor (Unipolar)

Arduino UNO

Electrolytic Capacitor

Power Supply

Documented Code

/* Example sketch to control a stepper motor with 
   DRV8825 stepper motor driver, AccelStepper library 
   and Arduino: continuous rotation. 
   More info: https://www.makerguides.com */

#include "AccelStepper.h"

// Define stepper motor connections and motor interface type. Motor interface type must be set to 1 when using a driver:
#define dirPin 2
#define stepPin 3
#define motorInterfaceType 1

// Create a new instance of the AccelStepper class:
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);

void setup() {
  // Set the maximum speed in steps per second:
  stepper.setMaxSpeed(1000);
}

void loop() {
  // Set the speed in steps per second:
  stepper.setSpeed(400);
  // Step the motor with a constant speed as set by setSpeed():
  stepper.runSpeed();
}

This code is designed to run on the Arduino UNO microcontroller. It uses the AccelStepper library to control the stepper motor via the DRV8825 driver. The dirPin and stepPin are defined according to the Arduino's digital pins connected to the driver's DIR and STEP pins, respectively. The setup() function initializes the motor's maximum speed, and the loop() function continuously sets the motor speed and executes the stepping action.