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

이 가이드에서는 DRV8825 스테퍼 모터 드라이버를 탐구하고 Arduino Nano ESP32를 사용하여 스테퍼 모터를 제어하는 방법을 알아봅니다. 특히, 우리는 다음을 다룰 것입니다:

아두이노 나노 ESP32 DRV8825 모듈

Hardware Preparation

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | 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 ESP32 Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

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

DRV8825는 CNC 기계, 3D 프린터 및 로봇에서 흔히 사용되는 양극성 스텝 모터를 제어하는 데 사용되는 인기 있는 모듈입니다. 이 모듈은 조정 가능한 전류 한계, 과열 방지 기능, 전체 스텝부터 1/32 미세 스텝에 이르기까지 다양한 스테핑 모드 옵션을 제공합니다. 적절한 냉각으로 각 모터 코일에 대해 최대 2.2A를 관리할 수 있으며, 8.2V에서 45V의 전압 범위 내에서 작동하여 다양한 스텝 모터를 수용할 수 있습니다.

풀 스텝, 마이크로스테핑, 유니폴라 스텝 모터, 바이폴라 스텝 모터와 같은 스텝 모터 개념을 이해하려면 Arduino Nano ESP32 - 스텝 모터 가이드를 참조하세요.

Arduino Nano ESP32의 두 개의 핀만 사용하여 NEMA 17 양극성 스테퍼 모터의 속도와 방향을 쉽게 관리할 수 있습니다.

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 ESP32
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 ESP32에 연결된 와이어: ENABLE, M1, M2, M3, RESET, SLEEP.
  • 모터 방향 및 속도 제어용 Arduino Nano ESP32에 연결된 와이어: DIR, STEP.
  • Arduino Nano ESP32로 오류 신호를 전송하기 위한 와이어: FAULT.
  • 모터 전원에 연결된 와이어: VMOT, GND (모터 전원 그라운드).
  • Arduino Nano ESP32의 그라운드에 연결된 와이어: GND (로직 그라운드).

DRV8825 모듈은 자체 내장 3.3V 전압 조정기를 통해 모터의 공급 전원에서 전력을 사용하기 때문에 아두이노 나노 ESP32 보드로부터 논리 전원을 필요로 하지 않습니다. 하지만, 올바르게 작동하고 공통 접지를 공유하도록 아두이노 나노 ESP32의 접지를 DRV8825의 GND (logic) 핀에 연결해야 합니다.

마이크로스텝 설정

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

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

  • 풀 스텝 모드: 회전당 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 핀용으로 하나, 최소한 두 개의 Arduino Nano ESP32 핀이 필요합니다. DRV8825는 Arduino Nano ESP32로부터 이러한 신호를 해독하여 스테퍼 모터를 정밀하게 움직입니다.

  • STEP 핀: STEP 핀의 매 펄스는 마이크로스테핑 설정에 따라 모터를 한 작은 단계(또는 전체 단계)씩 움직입니다.
  • DIR 핀: 모터의 회전 방향을 설정합니다.

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

DRV8825 모듈(ENABLE, M1, M2, M3, RESET, SLEEP)에 추가 핀을 설정하는 방법은 다음 세 가지 중 하나입니다:

  • 드라이버가 기본 설정을 사용하도록 연결하지 마세요.
  • 안정적인 모드를 위해 GND 또는 VCC에 직접 연결하세요.
  • 코드로 기능을 제어하기 위해 Arduino Nano ESP32 핀에 연결하세요.

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

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

Arduino Nano ESP32 DRV8825 스테퍼 모터 드라이버 배선도

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

상세히:

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

아두이노 나노 ESP32 코드

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define DIR_PIN D3 // The Arduino Nano ESP32 pin connected to DIR pin of DRV8825 module #define STEP_PIN D4 // The Arduino Nano ESP32 pin connected to STEP pin of DRV8825 module // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor stepper.setMaxSpeed(1000); stepper.setAcceleration(200); // set speed and the target position 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 Nano ESP32를 시작하려면 다음 단계를 따르세요:

  • Arduino Nano ESP32에 익숙하지 않은 경우, Arduino IDE에서 Arduino Nano ESP32의 환경 설정 방법에 대한 튜토리얼을 참조하십시오.
  • 제공된 다이어그램에 따라 구성 요소들을 연결하십시오.
  • USB 케이블을 사용하여 Arduino Nano ESP32 보드를 컴퓨터에 연결하십시오.
  • 컴퓨터에서 Arduino IDE를 실행하십시오.
  • Arduino Nano ESP32 보드와 해당하는 COM 포트를 선택하십시오.
  • 코드를 복사하여 Arduino IDE에서 엽니다.
  • Arduino IDE 왼쪽의 Libraries 아이콘으로 이동하십시오.
  • “AccelStepper”를 입력하여 검색하고, Mike McCauley의 AccelStepper 라이브러리를 찾으십시오.
  • Install 버튼을 눌러 AccelStepper 라이브러리를 추가하십시오.
Arduino Nano ESP32 AccelStepper 라이브러리
  • 코드를 복사하여 Arduino IDE에서 엽니다.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino Nano ESP32로 전송합니다.
  • 모터가 앞뒤로 회전하는 것을 볼 수 있습니다.

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

Video Tutorial

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