ESP8266 Bộ điều khiển động cơ bước DRV8825
Trong hướng dẫn này, chúng ta sẽ tìm hiểu về DRV8825 – bộ điều khiển động cơ bước và cách sử dụng nó với ESP8266 để điều khiển động cơ bước. Dưới đây là các chi tiết mà chúng ta sẽ đề cập:
- Module trình điều khiển động cơ bước DRV8825 là gì
- Cách hoạt động của module trình điều khiển động cơ bước DRV8825
- Kết nối module trình điều khiển động cơ bước DRV8825 với ESP8266 và một động cơ bước
- Lập trình ESP8266 để điều khiển một động cơ bước bằng module DRV8825

Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | Stepper Motor Nema 17 | ||
| 1 | × | DRV8825 Stepper Motor Driver | ||
| 1 | × | Expansion Board for DRV8825 Motor Driver | ||
| 1 | × | 12V Power Adapter | ||
| 1 | × | DC Power Jack | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Bộ điều khiển động cơ bước DRV8825
DRV8825 là một mô-đun phổ biến để điều khiển động cơ bước hai cực, thường được sử dụng trong các máy CNC, máy in 3D và robot. Nó có khả năng điều chỉnh dòng điện, bảo vệ quá nhiệt, và cung cấp một số tùy chọn microstepping như full-step (bước đầy), half-step (bước nửa), và các phân số xuống tới 1/32 bước. Mô-đun này có thể điều khiển lên tới 2,2A cho mỗi cuộn dây khi được làm mát thích hợp và hoạt động trong một phạm vi điện áp rộng từ 8,2V đến 45V, phù hợp với các động cơ bước khác nhau.
Để hiểu các khái niệm về động cơ bước như bước đầy đủ (full-step), vi bước (microstepping), động cơ bước đơn cực (unipolar stepper) và động cơ bước lưỡng cực (bipolar stepper), hãy tham khảo hướng dẫn ESP8266 - Stepper Motor.
Thật tuyệt khi bạn chỉ cần hai chân GPIO của ESP8266 để điều khiển tốc độ và hướng di chuyển của một động cơ bước hai cực, như loại NEMA 17.
Sơ đồ chân của DRV8825 - Bộ điều khiển động cơ bước

Trình điều khiển động cơ bước DRV8825 có 16 chân. Dưới đây là một cách bố trí phổ biến cho các chân trên mô-đun trình điều khiển động cơ bước DRV8825. Hãy nhớ rằng một số phiên bản của mô-đun có thể đặt tên các chân khác nhau một chút, nhưng vai trò của chúng vẫn không đổi.
| 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. |
Ngoài ra, có một núm vặn tích hợp nhỏ để bạn xoay và điều chỉnh điều khiển dòng điện, giúp ngăn động cơ bước và bộ driver khỏi bị quá nóng.
Tóm lại, 16 chân này được chia thành các loại dựa trên mục đích sử dụng của chúng:
- Dây kết nối với động cơ bước: 1A, 1B, 2A, 2B.
- Dây kết nối với ESP8266 để điều khiển driver: ENABLE, M1, M2, M3, RESET, SLEEP.
- Dây kết nối với ESP8266 để điều khiển hướng và tốc độ của động cơ: DIR, STEP.
- Dây gửi phản hồi cho ESP8266: FAULT.
- Dây kết nối tới nguồn cấp cho động cơ: VMOT, GND (mặt đất nguồn cấp động cơ).
- Dây kết nối tới đất của ESP8266: GND (mặt đất logic).
Đơn vị DRV8825 không cần nguồn cấp riêng từ ESP8266, vì nó nhận nguồn trực tiếp từ nguồn cấp cho động cơ với bộ ổn áp 3.3V tích hợp. Tuy nhiên, bạn phải kết nối đất của ESP8266 với chân GND (logic) của DRV8825 để đảm bảo hoạt động đúng và mức đất giữa hai thiết bị là như nhau.
Cấu hình vi bước
Bộ điều khiển DRV8825 cho phép microstepping bằng cách chia mỗi bước thành các phần nhỏ hơn. Nó thực hiện điều này bằng cách cấp cho các cuộn dây của động cơ các mức dòng điện khác nhau.
Ví dụ, động cơ NEMA 17 có góc bước 1,8° (200 bước cho mỗi vòng quay):
- Chế độ đầy đủ bước: 200 bước mỗi vòng quay
- Chế độ nửa bước: 400 bước mỗi vòng quay
- Chế độ 1/4 bước: 800 bước mỗi vòng quay
- Chế độ 1/8 bước: 1600 bước mỗi vòng quay
- Chế độ 1/16 bước: 3200 bước mỗi vòng quay
- Chế độ 1/32 bước: 6400 bước mỗi vòng quay
Khi tăng mức microstepping, động cơ vận hành trơn tru và chính xác hơn, nhưng nó cần nhiều bước hơn cho mỗi vòng quay. Nếu bạn giữ nguyên tần số xung bước, thì mỗi vòng quay sẽ mất nhiều thời gian hơn, khiến động cơ chậm lại.
Nếu vi điều khiển của bạn có thể gửi các xung nhanh đủ để theo kịp số bước cao hơn, bạn có thể duy trì hoặc thậm chí tăng tốc độ. Giới hạn thực sự phụ thuộc vào tốc độ mà cả driver và vi điều khiển của bạn có thể xử lý các xung này mà không bỏ bước.
Các chân chọn vi bước của DRV8825
DRV8825 có ba chân đầu vào để chọn độ phân giải vi bước, được gọi là các chân M0, M1 và M2. Bạn có thể đặt các chân này ở các mức logic nhất định để chọn từ sáu độ phân giải vi bước khác nhau:
| 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 |
Các chân thiết lập nhỏ này có điện trở tích hợp kéo chúng về trạng thái logic thấp bình thường. Nếu không được kết nối, động cơ sẽ chạy ở chế độ toàn bước.
Cách hoạt động
Để vận hành động cơ bước với module DRV8825, bạn cần tối thiểu hai chân ESP8266: một cho chân DIR và một cho chân STEP. DRV8825 sẽ xử lý các tín hiệu này từ ESP8266 để điều khiển động cơ bước một cách chính xác.
- STEP Pin: Mỗi tín hiệu trên STEP Pin di chuyển động cơ một bước nhỏ hoặc một bước đầy, dựa trên cài đặt của bạn.
- DIR Pin: Đặt hướng quay của động cơ.
Bộ điều khiển sử dụng các tín hiệu này và các thiết lập của nó để gửi tín hiệu điều khiển tới động cơ thông qua các chân 1A, 1B, 2A và 2B.
Bạn cũng có thể thiết lập thêm các chân trên mô-đun DRV8825 (ENABLE, M1, M2, M3, RESET, SLEEP) theo một trong ba cách sau:
- Hãy để chúng ở chế độ riêng biệt để trình điều khiển có thể sử dụng các thiết lập cơ bản.
- Gắn chúng trực tiếp vào GND hoặc VCC để thiết lập chế độ cố định.
- Liên kết chúng với các chân của ESP8266 để quản lý các chức năng này thông qua mã của bạn.
Sơ đồ nối dây giữa ESP8266, mô-đun DRV8825 và động cơ bước
Sơ đồ dưới đây trình bày các kết nối cơ bản cần thiết giữa ESP8266, module DRV8825 và động cơ bước. Với cách bố trí này, trình điều khiển DRV8825 hoạt động ở chế độ chuẩn của nó (full-step).

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
Một cách chi tiết:
- VMOT: Kết nối tới nguồn cấp điện của động cơ, ví dụ 12V.
- GND (for Motor): Gắn vào đất của nguồn cấp động cơ.
- 1A, 1B, 2A, 2B: Gắn vào các cuộn dây của động cơ bước.
- STEP: Kết nối với chân kỹ thuật số D4 trên ESP8266.
- DIR: Kết nối với chân kỹ thuật số D3 trên ESP8266.
- GND (for Logic): Kết nối với chân GND trên ESP8266.
- Các chân khác: Không kết nối.
Mã nguồn ESP8266
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Hãy xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu tiên bạn sử dụng ESP8266.
- Nối các thành phần như được hiển thị trong sơ đồ.
- Kết nối bảng ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, ví dụ (NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng.
- Sao chép mã ở trên và mở nó trong phần mềm ESP8266.
- Nhấp vào biểu tượng Thư viện ở phía bên trái giao diện ESP8266.
- Nhập "AccelStepper" vào hộp tìm kiếm, và tìm thư viện AccelStepper của Mike McCauley.
- Nhấn nút Cài đặt để thêm thư viện AccelStepper.

- Sao chép mã ở phía trên và mở nó trong Arduino IDE
- Nhấn nút Tải lên trong Arduino IDE để gửi mã đến ESP8266
- Bạn sẽ thấy động cơ chuyển động tiến lui
Khi bạn sử dụng động cơ ở chế độ đầy đủ bước, chuyển động của nó có thể không mượt lắm, điều đó là bình thường. Để làm cho chuyển động mượt mà hơn, hãy bật microstepping bằng cách thiết lập các chân M1, M2, và M3.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.