Stufin
Home Quick Cart Profile

Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit compatible

Buy Now

Component Name

Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit

Overview

The Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit is a comprehensive kit designed for building and controlling CNC machines, robotics, and other high-precision projects. This kit combines the popular Arduino UNO R3 Board with a CNC Shield and four DRV8825 stepper motor drivers, providing a powerful and flexible platform for controlling multiple stepper motors.

Arduino UNO R3 Board

The Arduino UNO R3 Board is a microcontroller board based on the ATmega328P processor. It is a widely used platform for prototyping and developing interactive projects. The board features

Microcontroller

ATmega328P

Operating Voltage

5V

Input Voltage

7-12V

Digital I/O Pins14 (of which 6 can be used as PWM outputs)

Analog Input Pins

6

Flash Memory

32 KB (of which 2 KB used by the bootloader)

SRAM

2 KB

EEPROM

1 KB

Clock Speed

16 MHz

CNC Shield

The CNC Shield is a dedicated expansion board designed specifically for controlling CNC machines and stepper motors. It features

Stepper Motor Driver Interfaces

4x (compatible with DRV8825, A4988, and other drivers)

Endstop Interfaces

4x (for limit switches and homing)

Spindle Control

1x (for spindle speed control)

Coolant Control

1x (for coolant system control)

Power Supply

12-24V (supports both 12V and 24V power supplies)

DRV8825 Stepper Motor Driver

The DRV8825 is a high-current stepper motor driver featuring

Stepper Motor Driver

4x (integrated into the CNC Shield)

Microstepping

Up to 1/32 microstepping

Maximum Current

2.5A per phase

Voltage Range

8.2-45V

Adjustable Current Limiting

The DRV8825 drivers allow for adjustable current limiting, ensuring safe and efficient motor operation.

Overheat and Overcurrent Protection

Yes

Key Features

Multi-Axis ControlThe kit can control up to 4 stepper motors simultaneously, making it ideal for CNC machines, robotics, and other multi-axis projects.
High-Precision ControlThe DRV8825 drivers support microstepping, enabling smooth and precise motor control.

Flexibility

The kit is compatible with various stepper motor types and can be easily integrated with other Arduino boards and shields.

Applications

The Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit is suitable for a wide range of projects, including

CNC machines

Robotics

3D printers

Laser engravers

Pick and place machines

Industrial automation systems

Conclusion

The Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit offers a powerful and flexible platform for controlling multiple stepper motors with high precision and flexibility. Its compatibility with various stepper motor types and ease of integration with other Arduino boards and shields make it an ideal choice for a wide range of projects.

Pin Configuration

  • Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit
  • The Arduino UNO R3 Board is a popular microcontroller board based on the ATmega328P microcontroller. When combined with the CNC Shield and 4xDRV8825 Driver Kit, it becomes a powerful platform for controlling CNC machines, 3D printers, and other stepper motor-based applications. Here's a detailed explanation of the pins on the Arduino UNO R3 Board, CNC Shield, and 4xDRV8825 Driver Kit:
  • Arduino UNO R3 Board Pins:
  • 1. Digital Pins (0-13):
  • These pins are used for digital input/output operations.
  • Can be used as input, output, or PWM (Pulse Width Modulation) pins.
  • Some pins have specialized functions:
  • + Pin 0 (RX): Serial communication receive pin.
  • + Pin 1 (TX): Serial communication transmit pin.
  • + Pin 2 (INT0): External interrupt 0.
  • + Pin 3 (INT1): External interrupt 1.
  • + Pin 13 (SCK): SPI clock pin.
  • 2. Analog Input Pins (A0-A5):
  • These pins are used for analog input operations.
  • Can read analog voltage levels between 0-5V.
  • 3. Power Pins:
  • VIN: Input voltage pin (7-12V).
  • 5V: Regulated 5V output pin.
  • 3V3: Regulated 3.3V output pin.
  • GND: Ground pin.
  • 4. Other Pins:
  • RESET: Reset pin, used to reset the board.
  • ICSP: In-Circuit Serial Programming header, used for programming the board.
  • CNC Shield Pins:
  • 1. Stepper Motor Driver Pins:
  • X_STEP (D2): X-axis stepper motor step signal pin.
  • X_DIR (D3): X-axis stepper motor direction signal pin.
  • X_ENABLE (D4): X-axis stepper motor enable signal pin.
  • Y_STEP (D5): Y-axis stepper motor step signal pin.
  • Y_DIR (D6): Y-axis stepper motor direction signal pin.
  • Y_ENABLE (D7): Y-axis stepper motor enable signal pin.
  • Z_STEP (D8): Z-axis stepper motor step signal pin.
  • Z_DIR (D9): Z-axis stepper motor direction signal pin.
  • Z_ENABLE (D10): Z-axis stepper motor enable signal pin.
  • E_STEP (D11): Extruder stepper motor step signal pin.
  • E_DIR (D12): Extruder stepper motor direction signal pin.
  • E_ENABLE (D13): Extruder stepper motor enable signal pin.
  • 2. Spindle Pins:
  • SPINDLE_DIR (D14): Spindle direction signal pin.
  • SPINDLE_PWM (D15): Spindle PWM signal pin.
  • 3. Coolant Pins:
  • FLOOD (D16): Flood coolant enable signal pin.
  • MIST (D17): Mist coolant enable signal pin.
  • 4. Limit Switch Pins:
  • X_HOME (D18): X-axis home limit switch signal pin.
  • Y_HOME (D19): Y-axis home limit switch signal pin.
  • Z_HOME (D20): Z-axis home limit switch signal pin.
  • 4xDRV8825 Driver Kit Pins:
  • 1. Stepper Motor Connections:
  • M1, M2, M3, M4: Stepper motor connection pins.
  • Each DRV8825 driver can control one stepper motor.
  • 2. Logic Voltage Selection:
  • VCC (5V): Logic voltage input pin (5V).
  • GND: Ground pin.
  • 3. Stepper Motor Control Signals:
  • STEP: Stepper motor step signal pin.
  • DIR: Stepper motor direction signal pin.
  • ENABLE: Stepper motor enable signal pin.
  • 4. Microstepping Mode Selection:
  • MS1, MS2, MS3: Microstepping mode selection pins.
  • Connection Structure:
  • 1. Connect the CNC Shield to the Arduino UNO R3 Board.
  • 2. Connect the 4xDRV8825 Driver Kit to the CNC Shield.
  • Connect the DRV8825 driver kit's VCC pin to the Arduino's 5V pin.
  • Connect the DRV8825 driver kit's GND pin to the Arduino's GND pin.
  • 3. Connect the stepper motors to the DRV8825 driver kit.
  • Connect each stepper motor's A, A-, B, and B- wires to the corresponding DRV8825 driver kit's M1, M2, M3, and M4 pins.
  • 4. Connect the limit switches to the CNC Shield.
  • Connect the X-axis home limit switch to the CNC Shield's X_HOME pin.
  • Connect the Y-axis home limit switch to the CNC Shield's Y_HOME pin.
  • Connect the Z-axis home limit switch to the CNC Shield's Z_HOME pin.
  • 5. Connect the spindle and coolant control signals to the CNC Shield.
  • Connect the spindle direction signal to the CNC Shield's SPINDLE_DIR pin.
  • Connect the spindle PWM signal to the CNC Shield's SPINDLE_PWM pin.
  • Connect the flood coolant enable signal to the CNC Shield's FLOOD pin.
  • Connect the mist coolant enable signal to the CNC Shield's MIST pin.
  • Note: Consult the datasheets and documentation for the specific components and your CNC machine/3D printer for detailed connection diagrams and configuration settings.

Code Examples

Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit Documentation
Overview
The Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit is a comprehensive kit designed for CNC machines, 3D printers, and other stepper motor-based projects. The kit consists of the popular Arduino UNO R3 board, a CNC shield, and four DRV8825 stepper motor drivers. This combination provides a powerful and flexible platform for controlling and driving stepper motors.
Hardware Components
Arduino UNO R3 Board:
	+ Microcontroller: ATmega328P
	+ Operating Voltage: 5V
	+ Input Voltage: 7-12V
	+ Digital I/O Pins: 14
	+ Analog Input Pins: 6
 CNC Shield:
	+ Compatible with Arduino UNO R3
	+ 4-axis stepper motor control
	+ MAX/MIN limit switches for each axis
	+ Spindle control output
 4xDRV8825 Driver Kit:
	+ Four DRV8825 stepper motor drivers
	+ Microstepping resolution: up to 1/32
	+ Peak current rating: 2.5A
	+ Operating voltage: 8.2-45V
Code Examples
### Example 1: Basic Stepper Motor Control
This example demonstrates how to control a single stepper motor using the DRV8825 driver and the CNC shield.
```cpp
const int dirPin = 2;  // Direction pin
const int stepPin = 3; // Step pin
void setup() {
  pinMode(dirPin, OUTPUT);
  pinMode(stepPin, OUTPUT);
}
void loop() {
  // Set direction
  digitalWrite(dirPin, HIGH);
// Take 100 steps
  for (int i = 0; i < 100; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
// Change direction
  digitalWrite(dirPin, LOW);
// Take 100 steps in the opposite direction
  for (int i = 0; i < 100; i++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
}
```
### Example 2: Multi-Axis CNC Machine Control
This example demonstrates how to control a 3-axis CNC machine using the CNC shield and DRV8825 drivers.
```cpp
const int xDirPin = 2;  // X-axis direction pin
const int xStepPin = 3; // X-axis step pin
const int yDirPin = 4;  // Y-axis direction pin
const int yStepPin = 5; // Y-axis step pin
const int zDirPin = 6;  // Z-axis direction pin
const int zStepPin = 7; // Z-axis step pin
void setup() {
  pinMode(xDirPin, OUTPUT);
  pinMode(xStepPin, OUTPUT);
  pinMode(yDirPin, OUTPUT);
  pinMode(yStepPin, OUTPUT);
  pinMode(zDirPin, OUTPUT);
  pinMode(zStepPin, OUTPUT);
}
void loop() {
  // Move to starting position
  digitalWrite(xDirPin, HIGH);
  digitalWrite(yDirPin, HIGH);
  digitalWrite(zDirPin, HIGH);
  for (int i = 0; i < 100; i++) {
    digitalWrite(xStepPin, HIGH);
    digitalWrite(yStepPin, HIGH);
    digitalWrite(zStepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(xStepPin, LOW);
    digitalWrite(yStepPin, LOW);
    digitalWrite(zStepPin, LOW);
    delayMicroseconds(500);
  }
// Move to target position
  digitalWrite(xDirPin, LOW);
  digitalWrite(yDirPin, LOW);
  digitalWrite(zDirPin, LOW);
  for (int i = 0; i < 200; i++) {
    digitalWrite(xStepPin, HIGH);
    digitalWrite(yStepPin, HIGH);
    digitalWrite(zStepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(xStepPin, LOW);
    digitalWrite(yStepPin, LOW);
    digitalWrite(zStepPin, LOW);
    delayMicroseconds(500);
  }
}
```
### Example 3: CNC Machine with Limit Switches and Spindle Control
This example demonstrates how to use the limit switches and spindle control output on the CNC shield.
```cpp
const int xDirPin = 2;  // X-axis direction pin
const int xStepPin = 3; // X-axis step pin
const int xMinPin = 8; // X-axis minimum limit switch pin
const int spindleCtrlPin = 9; // Spindle control pin
void setup() {
  pinMode(xDirPin, OUTPUT);
  pinMode(xStepPin, OUTPUT);
  pinMode(xMinPin, INPUT_pullup);
  pinMode(spindleCtrlPin, OUTPUT);
}
void loop() {
  // Check X-axis minimum limit switch
  if (digitalRead(xMinPin) == LOW) {
    // Move away from minimum limit
    digitalWrite(xDirPin, HIGH);
    for (int i = 0; i < 100; i++) {
      digitalWrite(xStepPin, HIGH);
      delayMicroseconds(500);
      digitalWrite(xStepPin, LOW);
      delayMicroseconds(500);
    }
  }
// Start spindle
  digitalWrite(spindleCtrlPin, HIGH);
  delay(1000);
// Stop spindle
  digitalWrite(spindleCtrlPin, LOW);
  delay(1000);
}
```
These examples demonstrate the basic functionality of the Arduino UNO R3 Board + CNC Shield + 4xDRV8825 Driver Kit. You can modify and extend these examples to suit your specific project requirements.