ESP8266 - DRV8825 스테퍼 모터 드라이버
이 가이드에서는 DRV8825 스테퍼 모터 드라이버에 대해 배우고, ESP8266을 사용하여 스테퍼 모터를 작동시키는 방법을 알아보겠습니다. 우리가 다룰 세부 사항은 다음과 같습니다:
- DRV8825 스테퍼 모터 드라이버 모듈이란 무엇인가
- DRV8825 스테퍼 모터 드라이버 모듈의 작동 방식
- DRV8825 스테퍼 모터 드라이버를 ESP8266 및 스테퍼 모터에 연결하기
- DRV8825 모듈로 ESP8266을 프로그래밍하여 스테퍼 모터 제어하기
Hardware Preparation
1 | × | ESP8266 NodeMCU | 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 | × | (Recommended) Screw Terminal Expansion Board for ESP8266 | 쿠팡 | Amazon | |
1 | × | (Recommended) Power Splitter For ESP8266 Type-C | Amazon |
DRV8825 스테퍼 모터 드라이버에 대하여
DRV8825는 일반적으로 CNC 기계, 3D 프린터 및 로봇에서 많이 사용되는 양극 스텝 모터를 관리하기 위한 인기 있는 모듈입니다. 이 모듈은 조정 가능한 전류 제어, 과열 방지 기능을 가지고 있으며, 전체 스텝, 반 스텝 및 1/32 스텝까지 분할하는 여러 마이크로스테핑 옵션을 제공합니다. 이 모듈은 적절한 냉각 시 각 코일당 최대 2.2A를 관리할 수 있으며, 8.2V에서 45V까지 다양한 전압 범위에서 작동하여 서로 다른 스텝 모터를 수용할 수 있습니다.
ESP8266 - 스테퍼 모터 가이드를 참조하여 풀 스텝, 마이크로 스테핑, 유니폴라 스테퍼, 바이폴라 스테퍼와 같은 스테퍼 모터 개념을 이해하십시오.
NEMA 17과 같은 bipolar 스테퍼 모터의 이동 방향과 속도를 관리하는 데 ESP8266 핀 두 개만 필요하다는 사실은 놀랍습니다.
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 ESP8266 |
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.
- 드라이버 제어를 위한 ESP8266에 연결된 와이어: ENABLE, M1, M2, M3, RESET, SLEEP.
- 모터 방향 및 속도 제어를 위한 ESP8266에 연결된 와이어: DIR, STEP.
- ESP8266에 피드백을 보내기 위한 와이어: FAULT.
- 모터의 전원에 연결된 와이어: VMOT, GND (모터 전원 접지).
- ESP8266의 접지에 연결된 와이어: GND (논리 접지).
DRV8825 유닛은 3.3V 전압 조절기가 내장되어 있어 모터의 전원 공급 장치에서 직접 전원을 받기 때문에 ESP8266과 별도의 전원 공급 장치가 필요하지 않습니다. 하지만 ESP8266의 접지와 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 모듈로 스테퍼 모터를 작동하려면 최소 두 개의 ESP8266 핀이 필요합니다: 하나는 DIR 핀용이고 또 다른 하나는 STEP 핀용입니다. DRV8825는 ESP8266으로부터 이러한 신호를 처리하여 스테퍼 모터를 정확하게 이동시킵니다.
- STEP 핀: STEP 핀의 신호가 설정에 따라 모터를 한 작은 스텝 또는 전체 스텝으로 이동시킵니다.
- DIR 핀: 모터의 회전 방향을 설정합니다.
운전자는 1A, 1B, 2A, 2B 핀을 통해 모터에 제어 신호를 보내기 위해 이러한 신호와 그 설정을 사용합니다.
DRV8825 모듈의 추가 핀(ENABLE, M1, M2, M3, RESET, SLEEP)을 세 가지 방법 중 하나로 설정할 수도 있습니다.
- 드라이버가 기본 설정을 사용할 수 있도록 별도로 유지하십시오.
- 고정 모드를 설정하기 위해 GND 또는 VCC에 직접 연결하십시오.
- 코드를 통해 이러한 기능을 관리하기 위해 ESP8266 핀에 연결하십시오.
ESP8266, DRV8825 모듈 및 스테퍼 모터 간의 배선 다이어그램
아래 다이어그램은 ESP8266, DRV8825 모듈 및 스텝 모터 간의 기본 연결을 보여줍니다. 이 구성으로 DRV8825 드라이버는 표준 모드(풀 스텝)로 작동합니다.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP8266의 핀 배치 및 ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.
자세히:
- VMOT: 모터의 전원 공급원, 예를 들어 12V에 연결하세요.
- GND (for Motor): 모터 전원 공급의 접지에 연결하세요.
- 1A, 1B, 2A, 2B: 스테퍼 모터의 코일에 연결하세요.
- STEP: ESP8266의 디지털 핀 D4에 연결하세요.
- DIR: ESP8266의 디지털 핀 D3에 연결하세요.
- GND (for Logic): ESP8266의 GND 핀에 연결하세요.
- Other pins: 연결하지 마세요.
ESP8266 코드
Detailed Instructions
Arduino IDE에서 ESP8266을 시작하려면 다음 단계를 따르세요:
- ESP8266를 처음 사용하는 경우 ESP8266의 환경 설정 방법 튜토리얼을 확인하세요.
- 다이어그램에 표시된 대로 부품을 배선하세요.
- USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Arduino IDE를 여세요.
- 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
- 위의 코드를 복사하여 ESP8266 소프트웨어에서 여세요.
- ESP8266 인터페이스 왼쪽의 Libraries 아이콘을 클릭하세요.
- 검색 상자에 "AccelStepper"를 입력하고, Mike McCauley의 AccelStepper 라이브러리를 찾으세요.
- Install 버튼을 눌러 AccelStepper 라이브러리를 추가하세요.
- 위의 코드를 복사하여 Arduino IDE에서 엽니다.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 ESP8266에 전송합니다.
- 모터가 앞뒤로 움직이는 것을 관찰할 수 있습니다.
모터를 풀 스텝 모드로 사용할 때 움직임이 매우 부드럽지 않을 수 있지만, 이는 정상입니다. 움직임을 더 부드럽게 하려면 M1, M2, M3 핀을 설정하여 마이크로스테핑을 켜세요.
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.