아두이노 나노 DRV8825 스테퍼 모터 드라이버

이 가이드에서는 DRV8825 스테퍼 모터 드라이버를 탐구하고 스테퍼 모터를 제어하기 위해 Arduino Nano와 함께 작동하는 방법을 배웁니다. 우리가 다룰 내용은 다음과 같습니다:

아두이노 나노 DRV8825 모듈

Hardware Preparation

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | Amazon
1×Stepper Motor Nema 17 Amazon
1×DRV8825 Stepper Motor Driver Amazon
1×Expansion Board for DRV8825 Motor Driver Amazon
1×12V Power Adapter Amazon
1×DC Power Jack 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(추천) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
1×(추천) Breakout Expansion Board for Arduino Nano Amazon
1×(추천) Power Splitter For Arduino Nano Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

DRV8825 스테퍼 모터 드라이버에 대하여

DRV8825는 CNC 기계, 3D 프린터 및 로봇에 자주 사용되는 2상 스테퍼 모터를 관리하기 위한 인기 있는 모듈입니다. 이 모듈은 조정 가능한 전류 제어, 온도 안전 기능 및 전체 스텝, 1/2, 1/4, 1/8, 1/16, 1/32과 같은 다양한 마이크로 스태핑 옵션을 제공합니다. 이 모듈은 충분한 냉각이 있는 경우 코일당 최대 2.2A를 지원하며, 8.2V에서 45V까지의 전압 범위 내에서 작동하여 다양한 스테퍼 모터를 수용합니다.

기본적인 스테퍼 모터의 기능, 예를 들어 풀스텝, 마이크로스테핑, 유니폴라 스테퍼 및 바이폴라 스테퍼에 대해 이해하려면 Arduino Nano - Stepper Motor 가이드를 확인하십시오.

NEMA 17과 같은 간단한 스테퍼 모터의 속도와 방향을 조절하는 데 두 개의 Arduino Nano 핀만 필요하다는 것은 놀랍습니다.

DRV8825 스테퍼 모터 드라이버 핀아웃

DRV8825 모듈 핀배열

DRV8825 스테퍼 모터 드라이버는 16개의 핀이 있습니다. DRV8825 스테퍼 모터 드라이버 보드의 일반적인 레이아웃은 다음과 같습니다. 일부 버전의 보드는 핀의 이름을 약간 다르게 지정할 수 있지만, 기능은 동일합니다.

Pin Name Description
VMOT Motor power supply (8.2 V to 45 V). This powers the stepper motor.
GND (for Motor) Ground reference for the motor power supply. Connect this pin to the GND of the motor power supply
2B, 2A Outputs to Coil B of the stepper motor.
1A, 1B Outputs to Coil A of the stepper motor.
FAULT Fault Detection Pin. This is an output pin that drives LOW whenever the H-bridge FETs are disabled as the result of over-current protection or thermal shutdown.
GND (for Logic) Ground reference for the logic signals. Connect this pin to the GND of Arduino Nano
ENABLE Active-Low pin to enable/disable the motor outputs. LOW = Enabled, HIGH = Disabled.
M1, M2, M3 Microstepping resolution selector pins (see table below).
RESET Active-Low reset pin - pulling this pin LOW resets the driver.
SLEEP Active-Low sleep pin - pulling this pin LOW puts the driver into low-power sleep mode.
STEP Step input - a rising edge on this pin advances the motor by one step (or one microstep, depending on microstepping setting).
DIR Direction input - sets the rotation direction of the stepper motor.

또한, 스테퍼 모터와 드라이버의 과열을 방지하기 위해 전류 제한을 조절할 수 있는 작은 내장 노브가 있습니다.

요약하면, 이 16개 핀은 기능에 따라 다음과 같은 유형으로 분류됩니다:

  • 스테퍼 모터에 연결된 핀: 1A, 1B, 2A, 2B.
  • 드라이버 제어를 위해 Arduino Nano에 연결된 핀: ENABLE, M1, M2, M3, RESET, SLEEP.
  • 모터 방향 및 속도 제어를 위해 Arduino Nano에 연결된 핀: DIR, STEP.
  • Arduino Nano에 피드백을 보내기 위한 핀: FAULT.
  • 모터의 전원 공급원에 연결된 핀: VMOT, GND (모터 전원 접지).
  • Arduino Nano의 접지에 연결된 핀: GND (로직 접지).

DRV8825 모듈은 내장된 3.3V 전압 조절기를 통해 모터 전원 공급 장치에서 전원을 받기 때문에, 논리를 위해 Arduino Nano에서 전원을 필요로 하지 않습니다. 그러나 Arduino Nano의 그라운드와 DRV8825 모듈의 GND (logic) 핀을 연결하여 올바르게 작동하고 공통 그라운드를 공유하도록 하는 것이 중요합니다.

마이크로스텝 구성

DRV8825 드라이버는 각 단계를 더 작은 부분으로 나누어 마이크로스테핑을 가능하게 합니다. 이는 모터 코일에 다양한 수준의 전류를 보내어 이루어집니다.

예를 들어, NEMA 17 모터의 1.8도 스텝 각도(회전당 200 스텝):

  • 풀스텝 모드: 회전당 200 스텝
  • 하프스텝 모드: 회전당 400 스텝
  • 쿼터스텝 모드: 회전당 800 스텝
  • 에잇스텝 모드: 회전당 1600 스텝
  • 식스틴스텝 모드: 회전당 3200 스텝
  • 서티세컨드시텝 모드: 회전당 6400 스텝

마이크로스테핑 설정을 높이면 모터가 더 부드럽고 정확하게 작동하지만, 각 완전 회전에 더 많은 단계가 필요합니다. 동일한 속도로 스텝 펄스(매초의 펄스)를 유지하면 각 완전 회전에 더 많은 시간이 걸려 모터가 느려집니다.

하지만 마이크로컨트롤러가 더 높은 스텝 수에 맞춰 충분히 빠르게 펄스를 보낼 수 있다면, 속도를 유지하거나 심지어 증가시킬 수 있습니다. 실제 한계는 드라이버와 마이크로컨트롤러가 이 펄스를 처리하면서 스텝을 놓치지 않을 만큼 얼마나 빨리 작동할 수 있는지에 달려 있습니다.

DRV8825 마이크로스텝 선택 핀

DRV8825에는 마이크로스텝 해상도를 선택하기 위한 세 개의 입력이 포함되어 있습니다: M0, M1, 및 M2 핀. 이러한 핀을 특정 논리 수준으로 설정하여 여섯 가지 다른 마이크로스테핑 해상도 중에서 선택할 수 있습니다.

M0 Pin M1 Pi M2 Pi Microstep Resolution
Low Low Low Full step
High Low Low Half step
Low High Low 1/4 step
High High Low 1/8 step
Low Low High 1/16 step
High Low High 1/32 step
Low High High 1/32 step
High High High 1/32 step

이 작은 선택 핀에는 저항기가 내장되어 있어 일반적으로 LOW 상태를 유지합니다. 연결되지 않으면 모터는 풀 스텝 모드로 작동합니다.

작동 방식

DRV8825 모듈로 스테퍼 모터를 작동시키려면 최소한 두 개의 아두이노 나노 핀이 필요합니다. 하나는 DIR 핀 용이고 다른 하나는 STEP 핀 용입니다. DRV8825는 아두이노 나노에서 보내는 이 신호들을 디코딩하여 스테퍼 모터를 정확하게 움직입니다.

  • STEP 핀: STEP 핀의 각 펄스는 설정에 따라 모터를 작은 한 단계 또는 전체 단계로 이동시킵니다.
  • DIR 핀: 모터가 회전하는 방향을 설정합니다.

드라이버는 이러한 신호와 설정을 사용하여 1A, 1B, 2A 및 2B 핀을 통해 모터에 제어 명령을 보냅니다.

DRV8825 모듈의 추가 핀들(ENABLE, M1, M2, M3, RESET, SLEEP)을 다음 세 가지 방법 중 하나로 설정할 수 있습니다:

  • 드라이버가 기본 설정으로 작동하도록 분리하세요.
  • 안정적인 모드를 위해 직접 GND 또는 VCC에 연결하세요.
  • 이러한 기능을 프로그래밍에 적극적으로 관리하려면 아두이노 나노 핀에 연결하세요.

아두이노 나노, DRV8825 모듈 및 스테퍼 모터 간의 배선 다이어그램

아래의 다이어그램은 Arduino Nano, DRV8825 모듈 및 스테퍼 모터 간에 필요한 기본 연결을 보여줍니다. 이 구성에서 DRV8825 드라이버는 표준 모드(풀 스텝)로 작동합니다.

아두이노 나노 DRV8825 스텝 모터 드라이버 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

심층 분석:

  • VMOT: 모터의 전원 공급원(예: 12V)에 연결하십시오.
  • GND (모터용): 모터 전원 공급원의 접지에 연결하십시오.
  • 1A, 1B, 2A, 2B: 스테퍼 모터의 코일에 연결하십시오.
  • STEP: Arduino Nano의 디지털 핀 D4에 연결하십시오.
  • DIR: Arduino Nano의 디지털 핀 D3에 연결하십시오.
  • GND (논리용): Arduino Nano의 GND 핀에 연결하십시오.
  • 기타 핀: 연결하지 마십시오.

아두이노 나노 코드

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-drv8825-stepper-motor-driver */ // Include the AccelStepper Library #include <AccelStepper.h> // Define the Arduino Nano pin connections #define STEP_PIN 4 #define DIR_PIN 3 // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor, // initial speed and the target position stepper.setMaxSpeed(1000); stepper.setAcceleration(200); stepper.setSpeed(200); stepper.moveTo(200); } void loop() { // Change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // Move the motor one step }

Detailed Instructions

  • 코드를 복사하고 Arduino IDE를 시작하세요.
  • Arduino IDE의 왼쪽 메뉴에서 Libraries 섹션으로 이동하세요.
  • "AccelStepper"를 찾아서 Mike McCauley의 AccelStepper 라이브러리를 찾으세요.
  • AccelStepper 라이브러리를 추가하려면 Install 버튼을 누르세요.
아두이노 나노 AccelStepper 라이브러리
  • 코드를 복사해서 Arduino IDE에서 엽니다
  • Arduino Nano에 코드를 업로드하려면 Arduino IDE에서 Upload 버튼을 클릭합니다
  • 모터가 앞뒤로 움직이는 것을 볼 수 있습니다

모터를 풀스텝 모드로 사용할 때 움직임이 아주 매끄럽지 않을 수 있으며, 이는 일반적입니다. 보다 부드러운 움직임을 위해 M1, M2, M3 핀을 설정하여 마이크로스테핑을 켜십시오.

Video Tutorial

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.