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

Mạch điều khiển động cơ bước A3967: thông số EasyDriver, bảng chân, chỉnh dòng và đấu Arduino, ESP32

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.
14 thg 10 2026 15:18

Mạch điều khiển động cơ bước A3967 là driver cho động cơ bước 2 pha lưỡng cực, xây dựng trên IC A3967 của Allegro: chịu tối đa 30 V nguồn motor, dòng tới khoảng 750 mA mỗi pha, chia vi bước tới 1/8 và nhận lệnh theo kiểu STEP/DIR. Dạng phổ biến nhất trên thị trường là board EasyDriver màu đỏ (bản v4.4, v4.5), trên đó có sẵn biến trở chỉnh dòng, mạch ổn áp 5 V hoặc 3,3 V cho phần logic và các chân MS1, MS2, SLP, RST, ENABLE, PFD được đưa ra ngoài.

Board A3967 hợp với motor bước dòng thấp đến trung bình: motor NEMA 14, NEMA 17 loại mỏng, motor nhỏ tháo từ máy in, máy scan, motor có hộp số dùng cho camera slider, giá đỡ kính thiên văn, van định lượng, mô hình học tập. Với motor NEMA 17 dòng 1,5–2 A của máy in 3D, A3967 vẫn quay được nhưng chỉ cấp tối đa khoảng 750 mA nên lực giữ giảm rõ. Hiểu đúng giới hạn này và vài quy tắc đấu nối là tránh được gần hết các sự cố "board mới mua đã chết".

1. Mạch điều khiển động cơ bước A3967 là gì

IC A3967 (mã đầy đủ thường gặp là A3967SLB hoặc A3967SLBT) là một driver vi bước có tích hợp bộ dịch (translator). Bên trong chip có hai cầu H điều khiển hai cuộn dây, mạch băm dòng PWM với dòng đặt theo điện áp tham chiếu, bảng dòng sin–cos cho chế độ vi bước và bộ logic biến mỗi xung STEP thành một bước. Nhờ có translator, vi điều khiển chỉ cần hai chân là đủ điều khiển một motor: một chân phát xung, một chân chọn chiều.

Board EasyDriver do Brian Schmalz thiết kế, sau đó được nhiều xưởng sản xuất lại với cùng sơ đồ và bố trí chân, nên hướng dẫn trong bài áp dụng được cho phần lớn module A3967 đang bán.

Mạch điều khiển động cơ bước A3967 EasyDriver v4.4 với chip A3967SLBT, tụ lọc nguồn và hai hàng chân header chưa hàn

Thông số cốt lõi của IC A3967 theo datasheet

Thông sốGiá trịÝ nghĩa khi dùng
Điện áp nguồn motor VBBTối đa tuyệt đối 30 VKhông cấp sát 30 V; dùng 12–24 V để có biên an toàn
Dòng ra mỗi pha±750 mA liên tục, ±850 mA đỉnhMotor dòng định mức cao hơn chỉ chạy được ở dòng giảm
Điện áp logic VCC3,0–5,5 VLàm việc được với cả vi điều khiển 5 V và 3,3 V
Vi bướcFull, 1/2, 1/4, 1/8Chọn bằng MS1, MS2
Chế độ suy giảm dòngSlow, fast, mixedChọn bằng điện áp chân PFD
Xung STEPMức cao và mức thấp tối thiểu 1 µsTần số STEP đảm bảo tới 500 kHz
Thời gian chờ sau SLEEPTối đa 1 msPhải đợi trước khi phát xung
Bảo vệNgắt nhiệt khoảng 165 °C (trễ 15 °C), khóa thấp áp, chống dòng xuyênQuá nhiệt thì motor mất lực rồi tự chạy lại khi nguội
VỏSOIC 24 chân, chân giữa nối mass để tản nhiệtNhiệt thoát chủ yếu qua mặt đồng của mạch in

Hai chi tiết datasheet ảnh hưởng trực tiếp tới cách dùng. Tầng ra có sụt áp khoảng 1,9 V phía nguồn và 0,65 V phía mass ở 750 mA, nên A3967 nóng hơn driver MOSFET đời mới ở cùng dòng. Ngoài ra, khi bật nguồn hoặc khi RST về mức thấp, translator đưa motor về trạng thái gốc 45° (hai cuộn cùng khoảng 70,7 % dòng đặt), nên trục có thể nhích nhẹ lúc vừa cấp điện – đó là bình thường.

2. Sơ đồ chân EasyDriver A3967 và chức năng từng chân

Board EasyDriver có hai hàng chân. Hàng phía motor gồm bốn chân cuộn dây và hai chân nguồn; hàng phía tín hiệu gồm STEP, DIR, các chân cấu hình và chân ra 5 V. Ký hiệu in trên bo có thể hơi khác giữa các xưởng nhưng thứ tự chức năng giống nhau.

ChânChức năngTrạng thái mặc định trên board
M+ / GND (PWR IN)Nguồn motor một chiềuCấp khoảng 7–30 V, đúng cực tính
A+ A− / B+ B−Hai đầu cuộn A và cuộn BMỗi cặp là một cuộn dây
STEPMỗi cạnh lên (thấp → cao) là một bước hoặc một vi bướcBản v4.5 có điện trở nối tiếp và kéo xuống
DIRChiều quay, được đọc tại cạnh lên của STEP kế tiếpBản v4.5 có điện trở kéo xuống
MS1, MS2Chọn độ phân giải vi bướcĐược kéo lên mức cao, mặc định 1/8
ENABLEMức cao: tắt tầng ra, motor thả lỏngMặc định mức thấp, motor được cấp dòng
SLP (SLEEP)Mức thấp: ngủ, tắt tầng ra, giảm tiêu thụMặc định mức cao
RST (RESET)Mức thấp: đưa translator về gốc, tắt tầng ra, bỏ qua xung STEPMặc định mức cao
PFDĐiện áp chọn kiểu suy giảm dòngMặc định slow decay
5V / GNDChân ra của mạch ổn áp trên board5 V, hoặc 3,3 V khi hàn jumper

Ba chân hay bị hiểu nhầm: ENABLE, SLP và RST

Cả ba chân đều làm motor mất lực, nhưng khác nhau ở chỗ có giữ vị trí bộ đếm bên trong hay không:

  • ENABLE lên mức cao chỉ tắt tầng ra; translator vẫn nhận STEP, DIR, MS1, MS2. Nếu lúc đó vẫn phát xung, vị trí trong chip thay đổi trong khi trục không quay, nên khi bật lại motor có thể giật một vi bước.
  • SLP về mức thấp tắt cả phần lớn mạch bên trong để tiết kiệm điện. Khi kéo SLP lên lại phải đợi tối đa 1 ms mới phát xung, nếu không vài xung đầu bị bỏ qua.
  • RST về mức thấp đưa translator về trạng thái gốc 45°. Motor sẽ nhảy về vị trí điện gần nhất ứng với trạng thái đó, nên không dùng RST để "tạm dừng".

Trong đa số ứng dụng chỉ cần nối STEP, DIR và GND. ENABLE nên nối thêm khi cần thả lỏng motor để quay tay hoặc để giảm nhiệt lúc đứng lâu; SLP chỉ đáng dùng khi chạy bằng pin.

3. Vi bước 1/8 với MS1, MS2 và số bước mỗi vòng

A3967 chia tối đa 1/8 bước. Với motor bước 1,8° phổ biến (200 bước đủ mỗi vòng), mỗi chế độ cho số xung mỗi vòng như sau:

MS1MS2Chế độXung mỗi vòng (motor 1,8°)
ThấpThấpĐủ bước (hai pha cùng cấp dòng)200
CaoThấpNửa bước400
ThấpCao1/4 bước800
CaoCao1/8 bước (mặc định khi để trống)1.600

Vì MS1, MS2 được kéo lên sẵn, để trống hai chân này board luôn chạy 1/8. Nhiều người viết chương trình theo 200 bước mỗi vòng rồi thấy motor chỉ quay được 1/8 vòng – nguyên nhân chính là chế độ mặc định này. Muốn chạy đủ bước thì nối cả MS1 và MS2 xuống GND; muốn đổi chế độ trong lúc chạy thì nối hai chân vào hai chân số của vi điều khiển.

Dòng điện ở chế độ đủ bước không phải 100 %

Ở chế độ đủ bước, A3967 cấp cho mỗi cuộn khoảng 70,7 % dòng đặt (hai pha cùng bật). Ở chế độ 1/8, dòng mỗi cuộn đi theo các mức 19,5 %, 38,3 %, 55,6 %, 70,7 %, 83,1 %, 92,4 %, 98,1 % và 100 % theo hình sin. Vì thế nửa bước kêu to hơn 1/8 (mô-men dao động theo từng bước), còn 1/8 êm nhất nhưng vi điều khiển phải phát xung nhiều gấp 8 lần.

4. Biến trở chỉnh dòng: cách đặt dòng EasyDriver cho đúng motor

Dòng pha của A3967 được giới hạn theo công thức ITRIP = VREF / (8 × RS), trong đó RS là điện trở đo dòng và VREF là điện áp tham chiếu. Trên EasyDriver, VREF lấy từ biến trở nhỏ cạnh chip, cho dải dòng khoảng 150–750 mA mỗi pha.

Board EasyDriver A3967 nhìn từ góc khác: biến trở chỉnh dòng, mạch ổn áp 5V và dãy chân STEP DIR MS1 MS2 SLP RST

Đặt dòng bằng đồng hồ vạn năng qua điểm đo TP1

Chữ MIN/MAX in cạnh biến trở trên một số lô board bị ngược với chiều thật, và có loại biến trở xoay trơn không có điểm chặn. Cách chắc chắn là đo điện áp tại điểm TP1 so với GND khi board đã có nguồn:

Điện áp TP1Dòng pha xấp xỉGợi ý motor
Khoảng 1 V150 mAMotor PM nhỏ, cuộn điện trở cao
Khoảng 2 V300 mAMotor tháo máy in, NEMA 14 dòng thấp
Khoảng 3 V450 mANEMA 17 mỏng, motor có hộp số nhỏ
Khoảng 4 V600 mANEMA 17 dòng 0,6–1 A (chạy giảm dòng)
Khoảng 5 V750 mAMức tối đa, cần làm mát

Quan hệ gần như tuyến tính, có thể nhớ nhanh: dòng (mA) ≈ 150 × điện áp TP1 (V). Đặt dòng bằng hoặc thấp hơn dòng định mức của motor ghi trên tem; với motor dòng định mức trên 750 mA thì cứ đặt tối đa và chấp nhận mô-men thấp hơn catalog.

Khi không có thông số motor

  • Vặn biến trở về mức thấp nhất, cho motor quay chậm, rồi tăng dần đến khi hết trượt bước ở tải thực tế.
  • Chạy 10–15 phút; nóng đến mức không giữ tay được thì lùi biến trở lại. Không vặn quá điểm chặn cơ khí vì biến trở rất dễ gãy.

5. Nguồn cấp và mạch ổn áp 5 V, 3,3 V trên board

Nguồn motor M+

IC chịu tối đa tuyệt đối 30 V, còn board EasyDriver được ghi dải làm việc khoảng 7–30 V (một số tài liệu ghi 6–30 V hoặc 8–30 V). Trong thực tế:

  • 12 V là mức dễ dùng nhất, mạch ổn áp trên board ít nóng; 24 V cho mô-men tốt hơn ở tốc độ cao nhưng ổn áp nóng hơn nhiều.
  • Không dùng nguồn 30 V hoặc nguồn chưa ổn định; xung áp khi motor hãm hoặc khi cắm rút có thể vượt 30 V và phá chip.
  • Nguồn 1–2 A cho một board là đủ; nhờ băm dòng, dòng lấy từ nguồn thường thấp hơn tổng dòng hai cuộn.

Đặt tụ lọc sẵn trên board ngay sát chip là để hấp thụ xung dòng băm. Nếu dây nguồn dài trên 50 cm, nên thêm một tụ 100–470 µF cùng điện áp ≥ 35 V tại cọc M+.

Mạch ổn áp và chân 5V

Board tự hạ áp từ M+ xuống 5 V để nuôi chip A3967 (chip cần khoảng 70 mA). Chân 5V trên hàng tín hiệu là ngõ ra của mạch ổn áp này, có thể dùng nuôi một mạch nhỏ bên ngoài, nhưng khả năng cấp dòng giảm mạnh khi nguồn M+ tăng vì mạch ổn áp phải "đốt" phần điện áp chênh lệch. Thử nghiệm của tác giả board (không gắn motor) cho thấy chân 5V cấp được khoảng 355 mA ở 9 V, 175 mA ở 12 V nhưng chỉ còn khoảng 26 mA ở 24 V trước khi mạch ổn áp tự giới hạn vì nhiệt. Vì vậy:

  • Ở nguồn 24 V, không dùng chân 5V của EasyDriver để nuôi Arduino hay ESP32.
  • Ở nguồn 9–12 V, nuôi được cảm biến, công tắc hành trình, LED; nuôi vi điều khiển thì vẫn nên có nguồn riêng.

Hai jumper hàn SJ1 (APWR) và SJ2 (3,3 V)

  • SJ2 để hở (mặc định): logic 5 V. Hàn nối SJ2: mạch ổn áp chuyển sang 3,3 V, chân 5V lúc đó ra 3,3 V, hợp với ESP32, Raspberry Pi, STM32.
  • SJ1 (APWR) nối sẵn bằng đường đồng: board tự cấp nguồn logic. Cắt đường đồng này thì mạch ổn áp bị tách, khi đó phải cấp 5 V hoặc 3,3 V từ ngoài vào chân 5V. Cách này hữu ích khi chạy 24 V và muốn mạch ổn áp hết nóng.

6. Đấu mạch điều khiển động cơ bước A3967 với Arduino

Sơ đồ tối thiểu dùng hai chân số. Arduino Uno, Nano, Mega đều chạy logic 5 V nên dùng board ở cấu hình mặc định.

Chân EasyDriverNối tớiGhi chú
STEPD3Bất kỳ chân số nào
DIRD2Bất kỳ chân số nào
GND (cạnh STEP)GND ArduinoBắt buộc nối chung mass
ENABLED4 (tùy chọn)Mức cao để thả motor
MS1, MS2Để trống hoặc D5, D6Để trống là 1/8 bước
M+ / GNDNguồn 12 VKhông lấy từ chân 5V của Arduino
A+ A− / B+ B−Hai cuộn motorTắt nguồn trước khi đấu

Thiếu dây GND chung, xung STEP không có điểm tham chiếu: motor chạy chập chờn hoặc đứng yên dù đèn nguồn vẫn sáng.

Chương trình tối thiểu không dùng thư viện

  • Trong setup: pinMode(3, OUTPUT); pinMode(2, OUTPUT); digitalWrite(2, HIGH); – đặt chiều quay.
  • Trong loop: digitalWrite(3, HIGH); delayMicroseconds(500); digitalWrite(3, LOW); delayMicroseconds(500); – mỗi chu kỳ là một vi bước.
  • Với 1/8 bước và motor 1,8°, chu kỳ 1 ms cho 1.000 vi bước/giây, tương đương 1.000 / 1.600 × 60 ≈ 37,5 vòng/phút.
  • Muốn quay đúng một vòng ở chế độ mặc định: lặp 1.600 xung. Muốn đảo chiều: đổi mức DIR rồi phát xung tiếp.

Dùng thư viện AccelStepper để có tăng tốc, giảm tốc

  • Khai báo: AccelStepper stepper(AccelStepper::DRIVER, 3, 2); – kiểu DRIVER, chân STEP trước, DIR sau.
  • Trong setup: stepper.setMaxSpeed(3000); stepper.setAcceleration(2000); stepper.moveTo(1600);
  • Trong loop: stepper.run(); – gọi liên tục, không dùng delay() trong loop.
  • AccelStepper trên Arduino Uno 16 MHz phát được khoảng vài nghìn bước/giây; chạy nhiều motor cùng lúc ở tốc độ cao dễ giật. Khi đó hạ vi bước xuống 1/4 hoặc 1/2 để giảm số xung cần phát.

Giới hạn tốc độ nằm ở vi điều khiển và mô-men motor chứ không ở chip (xung tối thiểu chỉ 1 µs). Profile gia tốc hình thang, S-curve và so sánh thư viện có trong bài điều khiển động cơ bước lưỡng cực.

7. Đấu EasyDriver A3967 với ESP32 và vi điều khiển 3,3 V

A3967 nhận mức cao khi điện áp vào vượt khoảng 0,7 × VCC. Với logic 5 V mặc định, ngưỡng này khoảng 3,5 V, trong khi chân ESP32 chỉ ra tối đa 3,3 V. Board có thể vẫn chạy trên bàn thử, nhưng sát ngưỡng như vậy rất dễ lỗi khi dây dài hoặc có nhiễu từ motor. Có hai cách làm đúng:

  • Hàn jumper SJ2 để chuyển board sang logic 3,3 V; ngưỡng mức cao còn khoảng 2,3 V, ESP32 điều khiển chắc chắn.
  • Giữ logic 5 V và dùng IC đệm chuyển mức (74HCT245, 74AHCT125) giữa ESP32 và STEP, DIR.

Chọn chân ESP32

Tín hiệuChân ESP32 gợi ýTránh dùng
STEPGPIO 25, 26, 27, 32, 33GPIO 6–11 (nối flash)
DIRGPIO 14, 16, 17GPIO 0, 2, 12, 15 (chân cấu hình lúc khởi động)
ENABLEGPIO 4, 13, 18GPIO 34–39 (chỉ là ngõ vào)
GNDGND–

Nối nhầm ENABLE hay MS1 vào GPIO 0 hoặc 12 có thể khiến ESP32 không khởi động hoặc vào chế độ nạp do điện trở kéo trên board – lỗi hay gặp khi giữ nguyên số chân từ sơ đồ Arduino.

ESP32 phát xung nhanh hơn Uno nhiều; thư viện FastAccelStepper dùng bộ phát xung phần cứng của chip nên tạo xung tốc độ cao, đều mà không chiếm CPU.

8. Nhiệt độ: vì sao board A3967 nóng và cách xử lý

EasyDriver nóng là chuyện bình thường ở dòng cao. Tác giả board ghi nhận chip có thể lên tới khoảng 130–139 °C với một số motor ở 9–30 V, và có trường hợp chạm ngưỡng ngắt nhiệt 165 °C. Nguyên nhân chính:

  • Tầng ra có sụt áp tổng khoảng 2,5 V ở 750 mA, mỗi cầu H tỏa gần 2 W khi chạy dòng tối đa.
  • Nhiệt trở từ chip ra không khí khoảng 35–50 °C/W tùy mạch in; chỉ 2 W đã có thể làm chip nóng hơn môi trường 70–100 °C.
  • Mạch ổn áp trên board nóng thêm khi nguồn M+ cao.

Cách giảm nhiệt hiệu quả theo thứ tự ưu tiên

  • Đặt dòng vừa đủ: nhiều motor chạy tốt ở 450–600 mA, nhiệt giảm rất nhiều so với 750 mA.
  • Thêm quạt nhỏ thổi ngang board, hoặc dán tản nhiệt nhôm nhỏ lên mặt chip bằng keo dẫn nhiệt.
  • Dùng chân ENABLE thả motor khi đứng lâu và tải không cần giữ (cơ cấu trục vít, motor có hộp số tự hãm).
  • Nguồn 24 V trở lên thì cắt SJ1 và cấp logic ngoài để mạch ổn áp không phải gánh nhiệt.

Motor mất lực vài giây rồi tự chạy lại theo chu kỳ là dấu hiệu chip đang chạm ngưỡng ngắt nhiệt: dòng đặt quá cao hoặc board bị nhốt trong hộp kín.

9. Motor nào phù hợp với mạch điều khiển động cơ bước A3967

Điều kiện cơ bản

  • Motor lưỡng cực 4 dây; motor 6 dây đấu nửa cuộn hoặc cả cuộn; motor 8 dây đấu nối tiếp hoặc song song.
  • Dòng định mức từ khoảng 150 mA trở lên; tốt nhất là 300–750 mA.
  • Motor 5 dây (dây chung nối sẵn bên trong) không chạy được với A3967 vì hai cuộn bị nối chung một điểm.

Bảng gợi ý ghép motor

Loại motorDòng định mức điển hìnhMức độ phù hợp với A3967
PM tròn 20–35 mm, motor tháo máy in, máy scan0,2–0,6 ARất phù hợp
NEMA 14 (35 mm)0,4–1 APhù hợp, đặt 0,5–0,75 A
NEMA 17 thân 20–34 mm, dòng 0,4–0,8 A0,4–0,8 APhù hợp
NEMA 17 thân 40–48 mm, dòng 1,5–2 A1,5–2 AChạy được nhưng chỉ còn khoảng 40–50 % lực giữ
Motor 6 dây đơn cực, đấu nửa cuộnTheo tem nửa cuộnPhù hợp nếu dòng ≤ 750 mA
NEMA 23 trở lên2–4 AKhông phù hợp

Motor nhỏ như các loại 20–35 mm có đặc điểm riêng về cách lắp, mô-men theo cỡ và cách chọn cho tải nhẹ, xem bài động cơ bước mini. Với NEMA 17 dòng cao, nếu mô-men là yếu tố quyết định thì nên chọn driver mạnh hơn; chi tiết từng chiều dài thân và mô-men tương ứng có ở bài động cơ bước NEMA 17.

Motor 28BYJ-48 và motor 6 dây

Motor 28BYJ-48 nguyên bản là loại 5 dây, chỉ chạy được với A3967 khi đã cắt đường đồng nối dây đỏ bên trong để chuyển sang lưỡng cực; cách làm và thông số thật của motor này nằm trong bài động cơ bước 5 dây 28BYJ-48. Motor 6 dây thì bỏ trống hai dây chung và đấu hai đầu cuộn vào A, B; sơ đồ chân cho từng loại driver có trong bài điều khiển động cơ bước 6 dây.

Trước khi đấu, đo điện trở để tìm hai cặp cuộn (hai dây thông nhau là một cuộn); đảo hai dây trong cùng một cuộn chỉ đổi chiều quay. Quy trình đầy đủ từ lúc tìm cặp đến chạy lần đầu có ở bài điều khiển động cơ bước 4 dây.

10. Chân PFD và chế độ suy giảm dòng (decay)

Chân PFD quyết định cách dòng điện trong cuộn dây giảm xuống sau mỗi chu kỳ băm. Điện áp đặt vào PFD so với VCC chọn chế độ như sau:

Điện áp PFDChế độBiểu hiện
Trên 0,6 × VCC (trên 3 V khi logic 5 V)Slow decay (mặc định của EasyDriver)Êm ở tốc độ thấp, có thể méo dòng ở tốc độ cao
Dưới 0,21 × VCC (dưới khoảng 1,05 V)Fast decayBám dòng tốt khi chạy nhanh, nhưng ồn và rung hơn
Trong khoảng giữaMixed decayCân bằng giữa hai chế độ

Chỉ thử mixed decay khi motor kêu rít hoặc vi bước không đều khi chạy nhanh: tạo cầu phân áp từ chân 5V xuống GND (ví dụ 10 kΩ và 6,8 kΩ cho khoảng 2 V) rồi đưa vào PFD.

11. Lỗi thường gặp với mạch điều khiển động cơ bước A3967

Hiện tượngNguyên nhân thường gặpCách xử lý
Board chết sau khi rút hoặc cắm lại motorRút dây motor khi đang có điện, cuộn dây sinh xung áp phá tầng raLuôn tắt nguồn trước khi động vào dây motor; dùng cọc vít hoặc hàn chặt
Chip chết ngay khi cấp nguồnCấp ngược cực M+, hoặc nguồn vượt 30 VKiểm tra cực tính; dùng nguồn ≤ 24 V
Motor rung tại chỗ, không quaySai cặp cuộn; dòng đặt quá thấp; tần số xung quá cao lúc khởi độngĐo lại cặp cuộn; tăng dòng; thêm gia tốc
Motor chỉ quay 1/8 vòng dù chương trình tính 200 bướcĐể trống MS1, MS2 nên đang ở 1/8Nối MS1, MS2 xuống GND hoặc nhân số bước lên 8
Đèn nguồn sáng, motor không có lực giữENABLE đang ở mức cao, SLP hoặc RST bị kéo xuốngKiểm tra mức logic các chân; chân vi điều khiển chưa cấu hình có thể ở trạng thái lửng
Motor yếu dần rồi mất lực vài giâyChip chạm ngưỡng ngắt nhiệtGiảm dòng, thêm quạt
Vặn biến trở mà dòng thay đổi ngược với chữ MIN/MAXIn nhãn sai ở một số lô boardĐo TP1 thay vì nhìn nhãn
ESP32 lúc chạy lúc khôngLogic 3,3 V sát ngưỡng khi board ở 5 VHàn SJ2 sang 3,3 V hoặc dùng IC chuyển mức
Mạch ổn áp nóng bỏng, Arduino resetNuôi Arduino từ chân 5V khi M+ là 24 VCấp nguồn riêng cho Arduino; cắt SJ1 nếu cần

Lỗi đầu tiên trong bảng gây ra phần lớn các ca hỏng board: cuộn dây đang mang dòng tích năng lượng từ trường, khi dây tuột hay bị rút đột ngột, năng lượng đó tạo xung điện áp lớn trên tầng ra. Header cắm lỏng hoặc dây không bấm đầu cũng nguy hiểm như rút motor, vì tiếp xúc chập chờn tạo ra hàng loạt xung như vậy.

12. So sánh A3967 với A4988 và DRV8825

A3967 là driver vi bước tích hợp đời đầu; board A4988, DRV8825 ra đời sau, nhỏ và mạnh hơn nhưng không có ổn áp logic trên board.

Tiêu chíA3967 (EasyDriver)A4988DRV8825
Điện áp motorTối đa 30 V8–35 V8,2–45 V
Dòng mỗi phaKhoảng 750 mAKhoảng 1 A không tản nhiệt, tới 2 A khi làm mát tốtKhoảng 1,5 A không tản nhiệt, tới 2,2 A khi làm mát tốt
Vi bước tối đa1/81/161/32
Ổn áp logic trên boardCó (5 V hoặc 3,3 V)Không, cần VDD riêngKhông, logic tự nuôi
Điểm mạnhDễ dùng, chạy được ở điện áp motor thấp, nối dây đơn giảnPhổ biến, rẻ, nhiều tài liệuDòng và điện áp cao hơn

Chọn A3967 khi motor nhỏ, dòng dưới 750 mA, cần một board độc lập dễ đấu dây với vi điều khiển 3,3 V hoặc 5 V. Chọn A4988, DRV8825 hoặc dòng TMC khi motor NEMA 17 dòng 1,5–2 A, cần cắm vào CNC Shield, hoặc cần chạy êm hơn. Khi motor cần dòng trên 2 A hoặc đặt trong tủ điện công nghiệp, driver tín hiệu cách ly quang như mạch điều khiển động cơ bước TB6600 là bước nâng cấp tự nhiên.

13. Ứng dụng hợp lý của driver A3967

Do giới hạn dòng, A3967 phát huy tốt nhất ở cơ cấu tải nhẹ, cần gọn và êm: camera slider, bàn xoay chụp sản phẩm, giá đỡ kính thiên văn, bơm nhu động, van và rèm mô hình nhà thông minh, máy vẽ mini, đồ án sinh viên.

Ở các cơ cấu cần mô-men lớn hơn mà vẫn muốn giữ driver nhỏ, giải pháp hay dùng là gắn hộp số vào motor để nhân mô-men; các dạng step tích hợp hộp số và bảng tốc độ ra theo tỉ số có trong bài động cơ bước giảm tốc. Khi bài toán không cần định vị chính xác từng bước mà chỉ cần quay ổn định một tốc độ, như băng tải nhỏ hay máy khuấy, motor giảm tốc mini kèm bộ điều tốc thường đơn giản và bền hơn. Còn khi cần tốc độ cao, mô-men lớn và phản hồi vị trí, motor servo là lựa chọn phù hợp hơn hẳn một driver 750 mA. Tổng quan cấu tạo và các dòng động cơ bước có thể xem tại trang động cơ bước.

14. Câu hỏi thường gặp về mạch điều khiển động cơ bước A3967

  • EasyDriver v4.4 và v4.5 khác nhau thế nào? Hai bản gần như giống nhau về chức năng và sơ đồ chân. Bản v4.5 thêm điện trở nối tiếp và điện trở kéo xuống cho chân STEP và DIR, giúp chân vào chịu được quá áp nhẹ và không nhận xung rác khi vi điều khiển chưa khởi động xong. Dùng thay cho nhau được mà không phải sửa chương trình.
  • Driver A3967 có cần nối cả STEP, DIR, ENABLE, MS1, MS2, SLP, RST không? Không. Chỉ cần STEP, DIR và GND chung là motor chạy ở chế độ 1/8 bước. ENABLE nên nối khi cần thả lỏng motor; MS1, MS2 nối khi muốn đổi chế độ vi bước bằng phần mềm; SLP và RST để trống vì board đã kéo sẵn lên mức cao.
  • Đặt dòng EasyDriver cho motor ghi 0,4 A thế nào? Cấp nguồn, đo điện áp TP1 so với GND rồi vặn biến trở tới khoảng 2,7 V, tương ứng khoảng 400 mA theo quan hệ dòng (mA) ≈ 150 × V(TP1). Sau đó chạy thử 15 phút; motor ấm đến nóng vừa phải là đạt.
  • Có thể dùng mạch điều khiển động cơ bước A3967 với nguồn 5 V không? Board vẫn có thể quay motor ở điện áp rất thấp, nhưng mạch ổn áp trên board không còn tạo được 5 V ổn định và lực ở tốc độ cao rất kém. Nên dùng tối thiểu 9–12 V cho nguồn M+; nếu buộc phải chạy nguồn thấp, cắt SJ1 và cấp logic ngoài.
  • Chip trên board ghi A3967SLBT, các chữ sau mã có ý nghĩa gì? Chữ S chỉ dải nhiệt độ làm việc −20 đến 85 °C, LB là vỏ SOIC 24 chân kiểu có chân tản nhiệt giữa, T là phiên bản không chì. A3967SLB và A3967SLBT có cùng thông số điện, thay cho nhau được.
  • Nguồn adapter 12 V 1 A có đủ cho một board EasyDriver không? Đủ cho đa số motor nhỏ và NEMA 17 đặt dưới 750 mA. Nhờ băm dòng, dòng lấy từ nguồn thường thấp hơn tổng dòng hai cuộn, nhất là khi motor chạy chậm. Nếu nuôi thêm vi điều khiển, quạt hoặc chạy hai board trở lên thì nên dùng nguồn 2–3 A.
  • Tốc độ tối đa motor đạt được với EasyDriver là bao nhiêu? Chip nhận xung STEP tới 500 kHz, nên giới hạn thực tế là khả năng phát xung của vi điều khiển và mô-men motor. Với motor NEMA 17 ở nguồn 12 V và chế độ 1/8, đa số thiết lập chạy ổn ở vài trăm vòng/phút khi có gia tốc; muốn nhanh hơn cần nguồn cao hơn và motor điện cảm thấp.
  • Vì sao EasyDriver chạy tốt với Arduino nhưng chuyển sang Raspberry Pi thì motor kêu và giật? Raspberry Pi logic 3,3 V nên cần hàn SJ2 hoặc dùng IC chuyển mức, và hệ điều hành Linux không tạo được xung đều khi phát bằng Python. Nên dùng thư viện phát xung bằng DMA như pigpio, hoặc để một vi điều khiển nhỏ phát xung và Pi chỉ gửi lệnh.
  • Board A3967 dùng được với firmware GRBL hoặc Marlin không? Dùng được vì giao tiếp là STEP/DIR như mọi driver khác; chỉ cần nối chân STEP, DIR, ENABLE của bo điều khiển tới từng EasyDriver. Lưu ý đặt số bước mỗi mm theo chế độ 1/8 và chỉ dùng cho máy nhẹ như máy vẽ, máy khắc laser mini.
  • Làm sao biết board A3967 đã chết hay chỉ ngắt nhiệt? Tắt nguồn chờ chip nguội vài phút rồi bật lại, không gắn tải. Nếu motor có lực giữ và quay khi phát xung thì chỉ là ngắt nhiệt; nếu motor không có lực giữ, chip nóng nhanh bất thường dù không chạy, hoặc nguồn bị sụt khi cấp điện, nhiều khả năng tầng ra đã hỏng.
  • Board EasyDriver có cắm thẳng vào CNC Shield thay cho A4988 được không? Không. EasyDriver có kích thước và thứ tự chân khác hoàn toàn chuẩn khe cắm 16 chân của A4988, DRV8825. Muốn dùng với CNC Shield phải đi dây từ các chân STEP, DIR, EN và GND của khe trống sang từng board EasyDriver, đồng thời cấp nguồn motor riêng cho board.
8.495 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