0968140191Miền Nam
0975897066Miền Bắc

Cách Điều Khiển Động Cơ Bước (Step Motor): Driver, Vi Bước, Arduino

Viết bởi: Vũ Hồng Phúc
Vũ Hồng Phúc
Vũ Hồng Phúc, sinh năm 1985, sau khi tốt nghiệp cử nhân tại Đại Học Bách Khoa Hà Nội, Vũ Hồng Phúc đã tự mình khám phá thế giới qua việc du học tại EF Language School London và nhiều trường đại học khác. Tích lũy kinh nghiệm trong nhiều năm, anh quyết định trở về đất nước. Vũ Hồng Phúc đã hướng đến mục tiêu phát triển Dongco3pha.com là thương hiệu "Động cơ điện" hàng đầu Việt Nam. Trong nhiều năm liền danh liên tục mang lại nhiều thành tựu cho doanh nghiệp và đóng góp nhiều giải pháp tối ưu về chế tạo máy, chế tạo động cơ giảm tốc, động cơ điện.
13 thg 10 2026 19:40

Điều khiển động cơ bước là cấp xung theo đúng thứ tự vào các cuộn pha qua một driver, mỗi xung trục quay một góc bước, tần số xung quyết định tốc độ, thứ tự xung quyết định chiều quay. Trên thực tế, người dùng chỉ cần ba tín hiệu STEP, DIR, ENA từ Arduino, PLC hoặc board CNC đưa vào driver (A4988, TB6600, DM542…), còn driver lo phần cấp dòng và vi bước. Muốn động cơ bước chạy khỏe, êm, không trượt bước thì phải chọn đúng chế độ điều khiển (full step, nửa bước, vi bước), chỉnh dòng đúng tem và có đường tăng tốc hợp lý.

1) Động cơ bước và nguyên tắc điều khiển

Động cơ bước là động cơ đồng bộ biến chuỗi xung điện rời rạc thành chuyển động góc, và giữ được rotor đứng yên ở vị trí cần thiết khi có dòng. Khác motor xoay chiều, động cơ bước không có cuộn khởi động; nó chạy được là nhờ bộ chuyển mạch điện tử đóng cắt dòng vào các cuộn stator theo thứ tự và tần số nhất định. Số lần chuyển mạch bằng tổng số bước rotor đã đi.

Điều khiển động cơ bước step motor

Xung cấp cho cuộn dây có thể là xung một cực (dòng chỉ đi một chiều, dùng cho động cơ đơn cực 5 dây, 6 dây) hoặc xung hai cực (dòng đổi chiều, dùng cho động cơ lưỡng cực 4 dây, cần mạch cầu H). Vị trí ổn định của rotor luôn trùng với hướng của tổng lực từ do các cuộn đang có dòng tạo ra. Cấp điện cho một cuộn, rotor nằm thẳng trục cuộn đó; cấp đồng thời hai cuộn kề nhau, rotor nằm giữa, lực từ tổng lớn hơn nên momen giữ cũng lớn hơn.

Bộ chuyển mạch điện tử điều khiển động cơ bước

Sơ đồ nguyên lý điều khiển động cơ bước m pha

2) Ba cách cấp nguồn cho cuộn dây động cơ bước

a) Cấp điện áp trực tiếp

Dùng cho động cơ chạy chậm. Dòng qua cuộn dây do điện trở cuộn dây giới hạn, điện áp nguồn bằng điện áp định mức pha. Mạch đơn giản như ULN2003 với động cơ 28BYJ-48 5V là ví dụ quen thuộc. Nhược điểm: tăng tốc là momen tụt mạnh vì điện cảm cuộn dây làm dòng không kịp lên.

b) Cấp nguồn có điện trở hạn dòng (L/R)

Dùng nguồn cao hơn điện áp pha, mắc nối tiếp điện trở để giới hạn dòng. Dòng lên nhanh hơn nên chạy nhanh hơn được, nhưng tốn điện và tỏa nhiệt ở điện trở; ngày nay ít dùng.

c) Băm xung giữ dòng không đổi (chopper)

Đây là cách mọi driver hiện đại đang dùng: cấp nguồn cao (24–80V), driver đóng cắt nhanh để giữ dòng mỗi pha đúng giá trị đặt. Dòng lên nhanh nên momen ở tốc độ cao tốt hơn hẳn, đồng thời dòng không vượt định mức nên động cơ không cháy. Vì vậy với driver băm xung, điện áp nguồn cao hơn điện áp ghi trên tem pha là bình thường.

3) Các chế độ điều khiển động cơ bước

a) Điều khiển dạng sóng (Wave Drive)

Mỗi thời điểm chỉ một pha có dòng, lần lượt A, B, A-, B-. Mạch đơn giản, ít tốn điện, nhưng momen chỉ khoảng 70% so với full step. Ít dùng trong thực tế, chủ yếu để hiểu nguyên lý.

b) Chạy đủ bước (Full Step Drive)

Luôn có hai pha cùng có dòng: AB, BA-, A-B-, B-A. Rotor nằm giữa hai cực, momen lớn nhất trong các chế độ, góc bước đúng bằng góc danh định (1.8° với động cơ lai 2 pha). Nhược điểm là rung và kêu ở vùng cộng hưởng tốc độ thấp.

c) Chạy nửa bước (Half-Step Drive)

Xen kẽ một pha và hai pha: A, AB, B, BA-… Số bước mỗi vòng gấp đôi (400 bước với động cơ 1.8°), chạy êm hơn. Momen dao động giữa các bước vì lúc một pha, lúc hai pha; driver tốt bù bằng cách tăng dòng ở bước một pha.

d) Vi bước (Microstepping)

Driver cấp dòng hai pha theo dạng sin và cos bậc thang, chia mỗi bước thành 2, 4, 8, 16 tới 256 phần. Chạy rất êm, giảm tiếng ồn và cộng hưởng rõ rệt, là chế độ dùng nhiều nhất hiện nay. Cần nhớ: vi bước làm mịn chuyển động, nhưng momen mỗi vi bước nhỏ, nên độ chính xác thực tế khi có tải vẫn phụ thuộc cơ khí và momen dư.

Các phương pháp điều khiển động cơ bước full step, half step, vi bước

4) Điều khiển động cơ bước bằng Arduino và driver A4988

A4988 là module driver nhỏ dùng trong hầu hết máy in 3D đời đầu, kích thước chỉ cỡ móng tay. Thông số chính:

  • Nguồn động cơ 8–35V, dòng tới khoảng 1A khi không tản nhiệt, tới 2A khi có tản nhiệt và quạt.
  • 5 chế độ: full, 1/2, 1/4, 1/8, 1/16 bước, chọn bằng ba chân MS1, MS2, MS3; để trống cả ba là full step.
  • Chỉnh dòng bằng biến trở trên module: dòng giới hạn = Vref / (8 × Rs), Rs là điện trở cảm biến dòng in trên module (0.05Ω, 0.068Ω hoặc 0.1Ω tùy hãng làm board).
  • Có bảo vệ quá nhiệt, tự ngắt khi chip quá nóng.

Bảng chọn vi bước driver A4988 điều khiển động cơ bước bằng Arduino

Đấu nối: chân ENABLE kéo xuống LOW là bật driver, HIGH là tắt (động cơ thả lỏng). DIR quyết định chiều quay. Mỗi xung lên ở chân STEP là một bước hoặc một vi bước. Hai chân SLEEP và RESET nối chung với nhau. Hai cặp cuộn dây động cơ vào 1A-1B và 2A-2B, nguồn động cơ vào VMOT-GND, có tụ 100µF sát chân VMOT để chống xung áp.

Đoạn code mẫu dùng thư viện AccelStepper, trục chạy tới vị trí ngẫu nhiên với tốc độ và gia tốc ngẫu nhiên:

#include <AccelStepper.h> AccelStepper stepper(1, 5, 4); // kiểu driver, chân STEP = 5, chân DIR = 4 void setup() { Serial.begin(9600); pinMode(6, OUTPUT); digitalWrite(6, LOW); // ENABLE = LOW để bật driver } void loop() { if (stepper.distanceToGo() == 0) { // đã tới đích thì đặt đích mới delay(1000); stepper.moveTo(rand() % 400); // vị trí 0 – 399 bước stepper.setMaxSpeed((rand() % 400) + 200); // tốc độ bước/giây stepper.setAcceleration((rand() % 200) + 100); // gia tốc } Serial.println(stepper.distanceToGo()); stepper.run(); // bắt buộc gọi liên tục trong loop }

Hàm stepper.run() phải được gọi liên tục trong loop; chèn delay dài vào giữa là động cơ chạy giật. Dự án nhiều trục thì mỗi trục một đối tượng AccelStepper, gọi run() cho từng trục.

5) Thông số điện khi điều khiển động cơ bước

Driver thông dụngDòng ra tối đaĐiện áp nguồnHợp với động cơ
A4988khoảng 1–2A8–35VDCNEMA 17 nhỏ
DRV8825khoảng 1.5–2.2A8.2–45VDCNEMA 17
TB6600khoảng 3.5–4A9–42VDCNEMA 17, NEMA 23
DM542 (loại số)khoảng 4.2A đỉnh20–50VDCNEMA 23
DM860khoảng 7.2A đỉnh24–80VDC hoặc 18–80VACNEMA 34
  • Số liệu theo dải phổ biến của từng dòng; module đời khác hãng có thể lệch.
  • Dòng ra driver nên lớn hơn dòng pha động cơ 20–30%.
  • Động cơ bước không chạy biến tần, luôn phải qua driver bước.

Nguồn tổ ong 24V, 36V, 48V lấy điện lưới 1 pha 220V là cấu hình phổ biến. Biến tần chỉ dùng cho motor điện 3 pha xoay chiều; máy có cả trục bước và motor xoay chiều (ví dụ trục chính CNC) thì hai hệ điều khiển tách riêng.

6) Các loại động cơ bước theo số pha và kiểu điều khiển tương ứng

  • Động cơ bước 2 pha lai: góc bước 1.8°, loại 4 dây đấu lưỡng cực với driver cầu H; loại 6 dây, 8 dây đấu được cả đơn cực lẫn lưỡng cực.
  • Động cơ bước 3 pha lai: góc bước 1.2°, cần driver 3 pha riêng, chạy êm hơn ở tốc độ thấp.
  • Động cơ bước 5 pha: góc bước 0.72°, driver 5 pha riêng, rung thấp, hợp thiết bị quang học, đo lường.
  • Động cơ bước nam châm vĩnh cửu cỡ nhỏ (ví dụ 28BYJ-48 5V có hộp số): góc bước lớn, điều khiển bằng ULN2003, dùng cho đồ chơi, rèm tự động, van nhỏ.

Phần cấu tạo, phân loại chi tiết xem bài động cơ bước là gì.

7) Ứng dụng điều khiển động cơ bước

  • Điều khiển động cơ bước bằng Arduino cho máy in 3D, máy khắc laser mini, máy vẽ, robot học tập.
  • Điều khiển động cơ bước bằng PLC phát xung cho máy cắt túi, máy cấp phôi, máy dán nhãn, bàn xoay chia độ.
  • Điều khiển nhiều trục động cơ bước qua board CNC (GRBL, Mach3) cho máy CNC router gỗ, máy cắt plasma, máy cắt xốp.
  • Điều khiển động cơ bước vòng kín cho dây chuyền đóng gói, máy chiết rót chạy liên tục.
  • Điều khiển động cơ bước trong camera lấy nét, máy in văn phòng, máy quét, bơm nhu động phòng thí nghiệm.

8) Ưu điểm, nhược điểm khi điều khiển động cơ bước

a) Ưu điểm

  • Điều khiển vị trí vòng hở bằng đếm xung, không cần encoder, code đơn giản.
  • Driver và động cơ rẻ, nhiều thư viện mẫu cho Arduino, PLC có sẵn lệnh phát xung.
  • Giữ vị trí chắc khi đứng yên, momen tốt ở tốc độ thấp.

b) Nhược điểm

  • Trượt bước khi quá tải mà bộ điều khiển không biết, trừ loại vòng kín.
  • Momen giảm nhanh khi tăng tốc, cần đường tăng tốc (ramp) hợp lý.
  • Tốn điện khi đứng yên, động cơ nóng; có vùng cộng hưởng gây rung.

9) Câu hỏi thường gặp về điều khiển động cơ bước

a) Người sắp mua bộ điều khiển động cơ bước cần hỏi gì, xác minh gì

  • Mua driver động cơ bước cần đối chiếu những thông số nào? Dòng ra tối đa (A), dải điện áp nguồn, mức vi bước hỗ trợ, tần số xung vào tối đa (kHz), mức tín hiệu vào (5V hay 24V), có cách ly quang hay không. Dùng PLC tín hiệu 24V thì cần driver nhận 24V hoặc thêm điện trở hạn dòng, đưa thẳng 24V vào driver 5V là cháy opto.
  • Làm sao biết driver TB6600 là hàng chip thật hay chip thay thế? Nhiều module bán tên TB6600 nhưng bên trong dùng chip khác có dòng thấp hơn. Mở nắp xem mã chip, chạy thử động cơ NEMA 23 ở dòng 3A trong 30 phút, đo nhiệt tản nhiệt; driver yếu sẽ tự ngắt hoặc động cơ mất lực.
  • Chọn driver theo động cơ thế nào cho khớp? Đọc dòng pha trên tem động cơ, chọn driver có dòng ra lớn hơn 20–30%. Ví dụ động cơ 57HS76 dòng 3A thì driver dòng đỉnh khoảng 4A như DM542. Động cơ NEMA 34 dòng 6A cần driver cỡ DM860.
  • Có nên mua bộ động cơ bước vòng kín không? Nếu máy chạy liên tục, tải thay đổi, không chấp nhận lệch phôi thì nên cân nhắc, vì driver vòng kín tự bù khi trượt bước và báo lỗi. Máy học tập, máy in 3D, máy khắc nhỏ thì vòng hở đủ dùng.
  • Giá bộ điều khiển động cơ bước tham khảo? Giá trung bình thị trường Việt Nam: module A4988, DRV8825 chỉ vài chục nghìn đồng; TB6600 khoảng vài trăm nghìn; driver số DM542 từ vài trăm nghìn tới khoảng một triệu; driver NEMA 34 và bộ vòng kín cao hơn. Nguồn tổ ong 24–48V tính riêng.

b) Người đã mua: lắp cho đúng, dùng cho tối ưu

  • Đấu dây Arduino với driver ngoài như TB6600 thế nào? Có hai kiểu: chung dương (PUL+, DIR+, ENA+ nối 5V; PUL-, DIR-, ENA- nối chân Arduino) hoặc chung âm (các chân dấu trừ nối GND, dấu cộng nối chân Arduino). Kiểu chung âm dễ hiểu hơn với người mới. Độ rộng xung tối thiểu thường 2.5–5µs.
  • Cài dòng và vi bước trên công tắc DIP thế nào? Dán bảng trên vỏ driver: chọn dòng gần nhất bằng hoặc thấp hơn dòng tem, vi bước 1/8 hoặc 1/16 cho máy CNC. Tắt nguồn rồi mới gạt DIP, gạt khi có điện driver không nhận.
  • Đặt tốc độ và gia tốc bao nhiêu để không trượt bước? Bắt đầu thấp: tốc độ 300–500 bước/giây ở full step, gia tốc 200–500 bước/giây². Tăng dần tới khi nghe động cơ rít hoặc mất bước, rồi lùi lại 20–30%. Trên GRBL tương ứng các thông số $110–$112 (tốc độ) và $120–$122 (gia tốc).
  • Dùng động cơ bước sao cho mát và bền? Bật giảm dòng khi đứng yên trên driver, gắn tản nhiệt hoặc quạt cho driver, cho tủ điện thông gió. Động cơ nóng 60–80°C là bình thường, vượt 90°C cần giảm dòng.
  • Động cơ đang chạy thỉnh thoảng giật một nhịp thì xử lý thế nào? Thường do nhiễu xung hoặc code có lệnh chặn (delay, in Serial quá nhiều). Dùng dây chống nhiễu cho tín hiệu, tách khỏi dây động lực, giảm lệnh Serial.println trong vòng lặp, kiểm tra nguồn có sụt khi các trục chạy cùng lúc.

c) Các lỗi người dùng thường mắc và cách chỉnh sửa

  • Cắm rút dây động cơ khi driver đang có điện? Hồ quang ở đầu nối sinh xung áp làm cháy cầu H của driver, lỗi này rất hay gặp với A4988. Cách xử lý: luôn tắt nguồn trước khi cắm, gắn tụ 100µF sát chân nguồn driver.
  • Quên nối GND chung giữa Arduino và driver? Triệu chứng: động cơ đứng im hoặc chạy lung tung. Cách sửa: nối GND Arduino với GND logic của driver (với module A4988) hoặc đấu đúng cặp chung âm, chung dương với driver cách ly quang.
  • Chạy tốc độ cao ngay lập tức không có tăng tốc? Động cơ rít tại chỗ không quay. Cách sửa: dùng hàm setAcceleration trong AccelStepper hoặc cài gia tốc trên phần mềm CNC, PLC dùng lệnh phát xung có ramp.
  • Đặt dòng quá cao trên A4988 làm module nóng cháy? Đo Vref bằng đồng hồ, tính lại theo công thức Vref = dòng × 8 × Rs; ví dụ Rs 0.1Ω, muốn 1A thì Vref 0.8V. Gắn tản nhiệt nhôm, thêm quạt nếu dòng trên 1A.
  • Động cơ quay ngược so với hướng mong muốn? Đổi mức logic chân DIR trong code, hoặc tắt nguồn rồi đảo hai dây của một cuộn (1A với 1B). Trên GRBL có thông số $3 để đảo chiều từng trục mà không cần đấu lại.

d) Dành cho sinh viên cơ điện mới vào ngành: nên tìm hiểu gì trước

  • Cần nắm kiến thức nào trước khi học điều khiển động cơ bước? Điện tử số cơ bản (mức logic, xung, tần số, độ rộng xung), transistor và MOSFET làm khóa, mạch cầu H, định luật Ohm cho cuộn dây có điện cảm (hằng số thời gian L/R), lập trình vi điều khiển (vòng lặp, ngắt, timer).
  • Nên học sản phẩm nào trước? Tập với động cơ 28BYJ-48 và ULN2003 để hiểu thứ tự cấp pha, sau đó chuyển sang NEMA 17 với A4988 để hiểu driver băm xung và vi bước, rồi mới tới driver số và động cơ vòng kín. Song song đọc bài cấu tạo động cơ bước.
  • Thứ tự bài tập hợp lý? Bài 1: viết code cấp pha thủ công cho wave, full, half step, nghe tiếng và cảm nhận momen. Bài 2: dùng AccelStepper chạy vị trí, đổi gia tốc. Bài 3: ghép vít me, tính step/mm, đo bằng thước cặp. Bài 4: thử tải tăng dần tới khi trượt bước để hiểu đường cong momen theo tốc độ.
  • Tự kiểm chứng bằng dụng cụ đo thế nào? Đồng hồ vạn năng đo điện trở pha, đo Vref. Ampe kế mắc nối tiếp một pha để thấy dòng ở full step và vi bước. Có máy hiện sóng thì xem dạng dòng băm xung trên điện trở cảm biến.
  • Sau động cơ bước nên học gì? Chuyển sang servo để hiểu điều khiển vòng kín PID qua bài cách điều khiển động cơ servo, rồi tới mạch điều khiển động cơ không chổi than.

Bài liên quan:

2.792 reviews

Tin tức liên quan

Mô Tơ Điện 1 Pha, 3 Pha 220V/380V: Bảng Giá Theo kW

Mô Tơ Điện 1 Pha, 3 Pha 220V/380V: Bảng Giá Theo kW

06 thg 11 2026 13:03

Mô tơ điện 3 pha 380V 4 cực giá 920.000 – 17.440.000 đ (0.37 – 30kW); mô tơ 1 pha 220V YL, YC giá 1.070.000 – 5.840.000 đ (0.37 – 3.7kW). Kèm cách chọn 1 pha hay 3 pha, số cực theo máy.
Đọc tiếp
Hộp giảm tốc harmonic: thông số, model CSF, SHF và cách chọn

Hộp giảm tốc harmonic: thông số, model CSF, SHF và cách chọn

14 thg 10 2026 15:12

Hộp giảm tốc harmonic (strain wave) size 14 – 32, tỉ số 1/50 – 1/120, mô men 5,4 – 137 Nm. Cách đọc tem, phân loại CSF, CSG, SHF-2UH, SHF-2UJ, SHF-2SO, SHD-2SH và cách chọn theo servo.
Đọc tiếp
Khám phá Bí Quyết Điều Khiển Động Cơ RC Servo Chính Xác Bằng STM32F4

Khám phá Bí Quyết Điều Khiển Động Cơ RC Servo Chính Xác Bằng STM32F4

15 thg 4 2025 20:44

Điều khiển động cơ RC Servo bằng STM32F4 mang đến độ chính xác cao và khả năng tùy chỉnh tín hiệu PWM tối ưu. Bài viết này hướng dẫn từ cấu hình bộ định thời, lập trình tín hiệu PWM, đến tối ưu hóa hiệu suất động cơ. Đây là giải pháp lý tưởng cho kỹ sư điện, kỹ sư cơ khí và các doanh nghiệp công nghiệp.
Đọc tiếp
Điều khiển động cơ RC servo bằng PWM: chu kỳ, độ rộng xung và cách tạo xung bằng timer

Điều khiển động cơ RC servo bằng PWM: chu kỳ, độ rộng xung và cách tạo xung bằng timer

10 thg 10 2026 17:36

Điều khiển động cơ RC servo bằng PWM: chu kỳ 20 ms, độ rộng xung 500–2500 µs, tính prescaler cho AVR, STM32, ESP32, PCA9685, mạch 555 và cách đo kiểm.
Đọc tiếp
Cách Điều Khiển Động Cơ DC Servo Chính Xác Bằng Giải Thuật PID

Cách Điều Khiển Động Cơ DC Servo Chính Xác Bằng Giải Thuật PID

12 thg 10 2026 08:32

Điều khiển động cơ DC Servo bằng giải thuật PID mang lại sự ổn định và hiệu suất cao cho hệ thống công nghiệp. Tìm hiểu cách áp dụng Proportional-Integral-Derivative, vi điều khiển và encoder để tối ưu hóa tốc độ và vị trí của động cơ. Phương pháp này được sử dụng rộng rãi trong robot, dây chuyền sản xuất và các hệ thống tự động hóa.
Đọc tiếp