Điều khiển động cơ bước 5V: chọn motor, driver, nguồn USB, pin và logic 3,3 V
Điều khiển động cơ bước 5V là cách chạy motor bước chỉ bằng một nguồn 5 V – cổng USB, sạc điện thoại, sạc dự phòng, bộ pin – thay cho nguồn 12–24 V quen thuộc của máy in 3D hay CNC. Cách này dùng cho thiết bị nhỏ, chạy pin hoặc cắm USB: kim đồng hồ đo, rèm cửa mini, máy cho cá ăn, bàn xoay chụp ảnh sản phẩm, cơ cấu lấy nét ống kính, đồ chơi khoa học, đồ án sinh viên dùng Arduino, ESP32, Raspberry Pi Pico.
Khó khăn nằm ở chỗ phần lớn driver phổ thông không khởi động được ở 5 V, phần lớn motor size lớn không cho lực ở 5 V, và cổng USB hay sạc dự phòng không hành xử như một nguồn phòng thí nghiệm. Nội dung dưới đây đi thẳng vào ba câu hỏi: motor nào chạy được 5 V, driver nào làm việc ở 5 V với logic 3,3 V, và cấp nguồn thế nào để vi điều khiển không tự khởi động lại khi motor quay.
Nội dung
- 1. Điều khiển động cơ bước 5V khác gì so với chạy ở 12–24 V?
- 2. Loại động cơ bước 5V nào chạy được thật sự?
- 3. Driver động cơ bước 5V: chọn IC theo điện áp nguồn tối thiểu
- 4. Logic 3,3 V với driver động cơ bước 5V
- 5. Cấp nguồn 5 V từ cổng USB, sạc điện thoại, sạc dự phòng
- 6. Sụt áp làm reset vi điều khiển khi motor chạy
- 7. Điều khiển động cơ bước 5V bằng pin
- 8. Tiết kiệm điện: ngắt pha khi động cơ đứng yên
- 9. Sơ đồ đấu điều khiển động cơ bước 5V thường gặp
- 10. Lỗi hay gặp khi điều khiển động cơ bước 5V
- 11. Câu hỏi thường gặp về điều khiển động cơ bước 5V
1. Điều khiển động cơ bước 5V khác gì so với chạy ở 12–24 V?
Động cơ bước tạo mô-men theo dòng điện qua cuộn dây, không theo điện áp. Điện áp nguồn chỉ quyết định dòng điện lên nhanh đến mức nào mỗi khi driver đảo pha. Nguồn càng cao so với điện áp định mức của cuộn dây, dòng càng kịp đạt mức đặt ở tần số bước cao, motor giữ được lực khi quay nhanh. Khi chỉ có 5 V, khoảng dư này rất nhỏ hoặc bằng không, kéo theo mấy hệ quả:
- Tốc độ tối đa thấp: mô-men tụt sớm khi tăng tần số bước, nhất là với motor có điện cảm lớn.
- Kén driver: chỉ dùng được driver có ngưỡng điện áp nguồn tối thiểu dưới 5 V, kể cả khi nguồn bị sụt.
- Kén motor: motor phải có điện áp định mức cuộn dây (dòng × điện trở) thấp hơn hẳn 5 V, hoặc bằng khoảng 5 V nếu là loại thiết kế để cắm thẳng 5 V.
- Nguồn chung với vi điều khiển: motor và board thường dùng cùng một đường 5 V, nên mọi xung dòng của motor đều đi thẳng vào nguồn của bộ xử lý.
Với động cơ bước ở 5 V, chọn motor – driver – nguồn thực chất là bài toán giới hạn điện áp và dòng.
2. Loại động cơ bước 5V nào chạy được thật sự?
Không phải motor nào ghi "5V" hay cắm vào 5 V mà quay là phù hợp. Các nhóm dưới đây là những loại chạy ổn định ở 5 V trong thực tế.
a. Motor bước có hộp số 28BYJ-48 bản 5 V
Đây là loại phổ biến nhất, cuộn dây thiết kế cho 5 V, chạy thẳng qua mạch ULN2003 mà không cần giới hạn dòng. Thông số thật, màu dây, số bước mỗi vòng và cách lập trình đã có đầy đủ ở bài động cơ bước 5 dây 28BYJ-48. Ở góc độ cấp nguồn 5 V, chỉ cần nhớ: một motor ăn khoảng 0,2–0,4 A khi hai pha cùng dẫn, nên một cổng USB 2.0 chỉ nuôi nổi một motor cùng board điều khiển.
b. Motor bước micro 15 mm, 20 mm (15BY, 20BY) trong ổ quang, máy ảnh
Motor nam châm vĩnh cửu đường kính 15–20 mm, thường 4 dây lưỡng cực, góc bước 18° (20 bước mỗi vòng), nhiều mẫu gắn sẵn trục vít me để kéo đầu đọc ổ DVD, cụm lấy nét, cụm zoom. Điện áp danh định phổ biến 3–5 V, có loại ghi rõ 5 V lưỡng cực. Đặc điểm cần lưu ý:
- Là motor lưỡng cực nên không dùng ULN2003 được; cần cầu H như DRV8833, TB6612FNG hoặc driver STEP/DIR điện áp thấp.
- Mô-men rất nhỏ, chỉ đủ đẩy cụm nhẹ trên vít me; lực chủ yếu đến từ bước ren vít me chứ không phải từ motor.
- Tháo từ ổ đĩa cũ thì thường không có tem; đo điện trở cuộn dây rồi bắt đầu chạy ở dòng thấp, tăng dần cho tới khi đủ lực mà vỏ chỉ ấm.
c. Motor bước siêu nhỏ 6–10 mm có vít me
Loại 6 mm, 8 mm, 10 mm dùng trong ống kính máy ảnh, camera an ninh, thiết bị y tế cầm tay, khóa điện tử. Điện áp làm việc thường 3–5 V, dòng vài chục đến hơn trăm mA. Với loại này, driver kiểu STSPIN220 (nguồn từ 1,8 V) hay DRV8834 (từ 2,5 V) có giới hạn dòng là an toàn nhất, vì cuộn dây nhỏ, cháy rất nhanh nếu cấp áp trực tiếp không kiểm soát. Nhóm motor thân vuông cỡ nhỏ hơn NEMA 17 có trong bài động cơ bước mini.
d. Motor đồng hồ đo X27.168, VID28 (motor kim)
Motor kim của đồng hồ táp-lô ô tô: điện áp 5 V, điện trở mỗi cuộn khoảng 260 Ω, dòng chỉ khoảng 20 mA, có hộp số bên trong, góc quét kim giới hạn khoảng 315°. Đây gần như là loại duy nhất có thể lái trực tiếp bằng chân vi điều khiển 5 V mà không cần driver, vì dòng mỗi cuộn nằm trong khả năng của chân GPIO. Dù vậy, nên thêm diode dập hoặc dùng IC đệm (ULN2803, IC driver chuyên cho motor kim) khi làm sản phẩm chạy lâu dài.
e. Motor NEMA 17 và motor thân vuông ở 5 V
Motor NEMA 17 điện áp định mức thấp (cuộn 1–2 Ω, dòng 1,5–2 A) về kỹ thuật vẫn quay được ở 5 V với driver giới hạn dòng như DRV8834 hoặc TMC2208, nhưng chỉ ở tốc độ thấp và lực giảm rõ khi tăng tốc. Motor tháo máy có tem ghi dòng 1 A, điện trở vài ôm như ở ảnh dưới đây cũng nằm trong trường hợp này: nhân điện trở với dòng tem ra điện áp cuộn dây, nếu con số đó vượt khoảng 3–3,5 V thì 5 V không đủ để đạt dòng định mức ở tốc độ đáng kể. Với các motor này, nguồn 12–24 V cùng driver thông thường mới cho kết quả như mong đợi; xem thêm bài động cơ bước NEMA 17.

Bảng tóm tắt khả năng chạy 5 V
| Loại motor | Chạy 5 V | Driver phù hợp | Ghi chú |
| 28BYJ-48 bản 5 V (đơn cực) | Tốt, đúng định mức | ULN2003, mảng MOSFET | Mỗi motor 0,2–0,4 A |
| Micro 15–20 mm lưỡng cực | Tốt | DRV8833, TB6612FNG, DRV8834 | Không dùng ULN2003 |
| Micro 6–10 mm vít me | Tốt | STSPIN220, DRV8834 | Bắt buộc giới hạn dòng |
| X27.168 / VID28 | Tốt | Chân GPIO hoặc IC đệm | Khoảng 20 mA mỗi cuộn |
| NEMA 17 cuộn 1–2 Ω | Chạy chậm, lực giảm | DRV8834, TMC2208 | Muốn nhanh dùng 12–24 V |
| NEMA 17 cuộn 20–30 Ω (12 V) | Rất yếu | Không khuyến nghị | Dòng không đủ |
3. Driver động cơ bước 5V: chọn IC theo điện áp nguồn tối thiểu
Lỗi phổ biến nhất khi tự làm mạch 5 V là cắm A4988 hay DRV8825 vào nguồn 5 V rồi thấy motor không nhúc nhích. Không phải mạch hỏng: hai IC này có mạch khóa điện áp thấp, không cho tầng công suất hoạt động khi nguồn motor dưới khoảng 8 V. Bảng dưới đây xếp các IC theo dải nguồn motor.
| IC driver | Dải nguồn motor | Dòng mỗi pha (liên tục) | Giao tiếp |
| STSPIN220 | 1,8–10 V | ~1,1 A | STEP/DIR, tới 1/256 bước |
| DRV8834 | 2,5–10,8 V | ~1,5 A | STEP/DIR, tới 1/32 bước |
| DRV8833 | 2,7–10,8 V | ~1,5 A (2 cầu H) | 4 chân IN, có thể băm dòng bằng điện trở sense |
| TB6612FNG | 2,5–13,5 V | ~1,2 A, đỉnh 3,2 A | 4 chân IN + 2 PWM, không hạn dòng |
| ULN2003 | Tới ~50 V | ~0,5 A mỗi kênh | 4 chân IN, chỉ cho motor đơn cực |
| TMC2208 / TMC2209 | Từ 4,75 V | ~1,2–1,4 A RMS (module) | STEP/DIR, UART |
| A4988 | 8–35 V | ~1 A không tản nhiệt | Không chạy ở 5 V |
| DRV8825 | 8,2–45 V | ~1,5 A có tản nhiệt | Không chạy ở 5 V |
DRV8833 – cầu H kép cho motor lưỡng cực nhỏ
DRV8833 chứa hai cầu H MOSFET, mỗi cầu điều khiển một cuộn dây. Vi điều khiển bật/tắt 4 chân IN theo trình tự bước, giống như lái 4 transistor. Ưu điểm: sụt áp MOSFET rất thấp, chạy tốt từ 1 cell pin Li-ion (3–4,2 V) đến nguồn 5 V, có chân nSLEEP đưa IC về dòng tiêu thụ cỡ vài µA. Nhiều module bán sẵn nối thẳng chân sense xuống GND, tức là không có giới hạn dòng; khi đó motor phải có điện trở cuộn dây đủ lớn để tự giới hạn dòng ở 5 V. Muốn băm dòng, hàn điện trở sense vào chân AISEN/BISEN theo datasheet.
TB6612FNG – thay thế L298N ở điện áp thấp
TB6612FNG cũng là cầu H kép MOSFET, cần hai nguồn: VM cho motor (2,5–13,5 V) và VCC cho logic (2,7–5,5 V, nối 3,3 V hoặc 5 V tùy board). Chân STBY phải kéo lên mức cao thì IC mới chạy – nhiều người quên chân này và tưởng module hỏng. Không có giới hạn dòng, nên dùng cho motor lưỡng cực 5 V có điện trở cuộn phù hợp. So với L298N, TB6612FNG gần như không sụt áp, trong khi L298N mất 2–4 V trên transistor lưỡng cực, ở nguồn 5 V motor chỉ còn khoảng 1–3 V (chi tiết ở bài điều khiển động cơ bước dùng L298).
DRV8834 và STSPIN220 – STEP/DIR ở điện áp thấp
Hai IC này giữ cách điều khiển STEP/DIR quen thuộc của máy in 3D, có chỉnh dòng bằng biến trở và vi bước, nhưng hoạt động từ dưới 3 V. Đây là lựa chọn hợp lý khi cần vi bước, chạy êm và giới hạn dòng an toàn ở nguồn 5 V hoặc pin.
TMC2208 / TMC2209 ở 5 V
Ngưỡng tối thiểu 4,75 V nghĩa là nguồn 5 V chỉ dư 0,25 V. Một sợi cáp USB mảnh hay sạc dự phòng yếu làm nguồn tụt xuống 4,6–4,7 V là driver ngắt. Chỉ nên dùng TMC ở 5 V khi nguồn ổn định, dây ngắn, và chấp nhận rằng StealthChop ở nguồn thấp không giữ được lực ở tốc độ cao. Cách cấu hình StealthChop, SpreadCycle và UART đã có ở bài điều khiển động cơ bước lưỡng cực.
ULN2003 – chỉ cho motor đơn cực
ULN2003 chỉ kéo dây pha xuống đất, nên chỉ dùng cho motor đơn cực có dây chung, điển hình là 28BYJ-48. Phần cấu tạo IC, sụt áp Darlington, cách ghép kênh và thay bằng mảng MOSFET có ở bài điều khiển động cơ bước bằng ULN2003.
4. Logic 3,3 V với driver động cơ bước 5V
ESP32, ESP8266, Raspberry Pi, Raspberry Pi Pico, STM32 đều xuất mức logic 3,3 V, trong khi nguồn motor là 5 V. Câu hỏi là chân vào của driver có nhận 3,3 V là mức cao không.
| Driver | Nhận logic 3,3 V | Điều kiện cần nhớ |
| ULN2003 | Được | Mức vào ~2,4–3 V mới bão hòa ở dòng 200–300 mA; với motor nặng, 3,3 V sát ngưỡng |
| DRV8833 | Được | Chân IN chịu được 5 V, mức cao từ khoảng 2 V |
| TB6612FNG | Được | Cấp VCC = 3,3 V từ board, không cấp VCC 5 V khi logic là 3,3 V |
| DRV8834, STSPIN220 | Được | Logic nhận từ khoảng 1,6–2,5 V trở lên |
| TMC2208/2209 | Được | Chân VIO nối 3,3 V của board |
| A4988 (để so sánh) | Logic được | Nhưng nguồn motor vẫn phải ≥ 8 V |
Raspberry Pi cần thêm chú ý
- Chân GPIO của Raspberry Pi không chịu 5 V; module nào có điện trở kéo lên 5 V ở chân tín hiệu (ví dụ chân báo lỗi) phải chuyển mức hoặc bỏ điện trở kéo lên.
- Chân 5V trên header Pi lấy thẳng từ nguồn cấp cho Pi; motor kéo dòng ở đây là kéo vào chính nguồn nuôi CPU, dễ gặp cảnh báo thiếu áp và treo thẻ nhớ.
Hai điểm đấu luôn phải đúng
- GND của board điều khiển, GND của driver và âm nguồn motor phải nối chung.
- Chân EN/STBY/nSLEEP phải ở trạng thái cho phép chạy, nếu để hở có module mặc định tắt.
5. Cấp nguồn 5 V từ cổng USB, sạc điện thoại, sạc dự phòng
Mỗi nguồn 5 V có giới hạn dòng khác nhau. Lấy motor từ nguồn yếu là nguyên nhân của phần lớn lỗi "chạy được một lúc rồi đứng", "cắm máy tính thì chạy, cắm sạc thì không".
| Nguồn 5 V | Dòng cấp được | Lưu ý khi chạy động cơ bước |
| Cổng USB 2.0 máy tính | 500 mA | Trừ dòng của board, chỉ còn khoảng 300–400 mA cho motor |
| Cổng USB 3.x máy tính | 900 mA | Một số máy tự ngắt cổng khi quá dòng, phải rút cắm lại |
| Sạc USB-A thường | 1–2,4 A | Chất lượng sạc rẻ rất khác nhau, áp có thể tụt khi tải nặng |
| Sạc USB-C (không thương lượng PD) | 1,5–3 A ở 5 V | Cần cáp và bo có điện trở nhận diện đúng mới được cấp điện |
| Sạc dự phòng | 1–3 A | Tự ngắt khi dòng tải quá nhỏ, thường dưới khoảng 50–100 mA |
| Nguồn tổ ong 5 V | 2–10 A | Ổn định nhất cho nhiều motor, cần chỉnh áp đúng 5,0–5,2 V |
Arduino Uno, Nano cắm USB
Board Arduino có cầu chì tự phục hồi khoảng 500 mA trên đường USB. Lấy chân 5V của board nuôi một 28BYJ-48 qua ULN2003 thì được; nuôi hai motor chạy đồng thời là sát giới hạn, cầu chì nóng lên và tăng điện trở, áp ở chân 5V tụt dần, motor yếu đi sau vài phút.
Cáp USB cũng có điện trở
Cáp sạc mảnh, dài 1–2 m có điện trở vòng (dây dương cộng dây âm) khoảng 0,2–0,5 Ω. Ở dòng 0,5 A, áp mất trên dây đã 0,1–0,25 V, chưa tính tiếp xúc ở đầu cắm. Với driver có ngưỡng 4,75 V như TMC2208, chỉ chừng ấy đã đủ gây ngắt chập chờn. Dùng cáp ngắn, lõi to, hoặc đưa nguồn motor qua cầu đấu riêng thay vì đi qua board.
Sạc dự phòng tự tắt
Sạc dự phòng được thiết kế để sạc điện thoại; khi dòng tải nhỏ hơn mức ngưỡng trong một khoảng thời gian (thường vài chục giây), nó cho rằng điện thoại đã đầy và ngắt. Thiết bị dùng motor bước chạy ngắt quãng, đứng yên lâu với cuộn dây đã ngắt điện, sẽ bị mất nguồn hoàn toàn. Cách xử lý:
- Chọn loại sạc dự phòng có chế độ dòng thấp (thường kích hoạt bằng nhấn giữ hoặc nhấn đúp nút nguồn).
- Thêm tải giả nhỏ theo chu kỳ: một điện trở được đóng bằng transistor vài trăm mili giây mỗi chục giây.
- Dùng mạch nguồn pin riêng thay cho sạc dự phòng khi thiết bị chạy lâu dài.
6. Sụt áp làm reset vi điều khiển khi motor chạy
Hiện tượng: motor vừa bắt đầu quay hoặc vừa đổi chiều thì board khởi động lại, đèn trên board chớp, ESP32 in ra dòng thông báo "Brownout detector was triggered" trên Serial Monitor, hoặc Arduino chạy lại từ đầu hàm setup.
Vì sao xảy ra
- Lúc cuộn dây vừa được cấp điện, dòng tăng vọt; nguồn yếu, dây dài làm đường 5 V tụt sâu trong vài mili giây.
- Board ESP32 phổ biến dùng ổn áp tuyến tính loại AMS1117 để hạ 5 V xuống 3,3 V; ổn áp này cần đầu vào cao hơn đầu ra khoảng 1–1,2 V, nên 5 V chỉ cần tụt dưới khoảng 4,3–4,4 V là đường 3,3 V bắt đầu tụt theo.
- Khi WiFi phát, ESP32 cũng kéo xung dòng vài trăm mA; trùng thời điểm với motor đổi pha là đủ để mạch phát hiện thiếu áp kích hoạt.
Cách xử lý theo thứ tự hiệu quả
| Biện pháp | Tác dụng | Ghi chú |
| Tách nguồn motor và nguồn board, chỉ nối chung GND | Loại bỏ gần như hoàn toàn | Cách chắc chắn nhất |
| Tụ hóa 470–1.000 µF sát chân nguồn driver | Bù xung dòng ngắn | Chọn tụ 10 V trở lên, đúng cực tính |
| Tăng tốc có gia tốc, không bật tất cả motor cùng lúc | Giảm đỉnh dòng | Lệch thời điểm khởi động vài chục ms |
| Cáp nguồn ngắn, lõi to | Giảm sụt áp trên dây | Tránh cáp sạc mảnh dài |
| Ổn áp LDO sụt áp thấp hoặc buck-boost cho 3,3 V | Giữ 3,3 V khi 5 V tụt | Áp dụng khi phải dùng chung nguồn |
- Không tắt mạch phát hiện thiếu áp của ESP32 để "chữa" lỗi reset; vi điều khiển chạy ở áp thiếu có thể ghi hỏng bộ nhớ flash.
- Không cắm thêm motor vào chân 3,3 V của board; ổn áp nhỏ trên board chỉ đủ cho chính vi điều khiển.
- Diode nối tiếp trên đường nguồn board giúp ngăn dòng ngược từ motor nhưng làm mất thêm 0,3–0,7 V; với nguồn 5 V cần tính lại ngưỡng.
7. Điều khiển động cơ bước 5V bằng pin
Chạy pin đặt ra hai câu hỏi: điện áp pin thay đổi theo mức xả có còn trong dải của driver không, và pin chạy được bao lâu.
Chọn cấu hình pin
| Cấu hình | Điện áp khi đầy → cạn | Driver hợp | Ghi chú |
| 4 pin AA kiềm | ~6,4 V → ~4 V | ULN2003, DRV8833, TB6612FNG | Đầu chu kỳ hơi cao cho motor 5 V, cuối chu kỳ yếu |
| 4 pin AA sạc NiMH | ~5,6 V → ~4,4 V | ULN2003, DRV8833 | Gần 5 V nhất trong suốt chu kỳ xả |
| 1 cell Li-ion 18650 | 4,2 V → ~3 V | DRV8833, DRV8834, STSPIN220 | Motor 5 V chạy được nhưng lực giảm; có thể thêm mạch tăng áp |
| 1 cell Li-ion + mạch tăng áp 5 V | 5 V ổn định | Mọi driver điện áp thấp | Hiệu suất tăng áp khoảng 85–90 % |
| 2 cell Li-ion nối tiếp | 8,4 V → ~6 V | DRV8834, DRV8833 có hạn dòng | Không dùng cho ULN2003 với motor 5 V |
Ước tính thời gian chạy
Công thức gần đúng: thời gian (giờ) = dung lượng pin (Wh) × hiệu suất mạch ÷ công suất motor trung bình (W). Ví dụ một cell 18650 2.000 mAh có khoảng 7,4 Wh; qua mạch tăng áp hiệu suất 85 % còn khoảng 6,3 Wh. Một motor 5 V giữ hai pha liên tục ăn khoảng 0,3 A × 5 V = 1,5 W, nên chỉ chạy được khoảng 4 giờ nếu cuộn dây có điện suốt. Nếu motor chỉ quay 2 phút mỗi giờ và ngắt pha khi đứng, công suất trung bình còn khoảng 0,05 W, thời gian kéo dài lên nhiều ngày; lúc đó dòng ngủ của vi điều khiển và mạch tăng áp mới là yếu tố quyết định.
8. Tiết kiệm điện: ngắt pha khi động cơ đứng yên
Động cơ bước tiêu thụ điện cả khi đứng yên nếu cuộn dây còn được cấp dòng để giữ vị trí. Với thiết bị chạy pin hoặc cắm USB, đây là phần điện năng lãng phí lớn nhất.
Khi nào được phép ngắt hoàn toàn
- Motor có hộp số tỉ số lớn hoặc trục vít me ren nhỏ: ma sát tự giữ tải, ngắt pha không bị trôi.
- Motor nam châm vĩnh cửu có mô-men giữ khi không cấp điện (detent) đủ lớn so với tải, ví dụ kim đồng hồ, cụm lấy nét nhẹ.
- Cơ cấu có phanh, chốt hoặc vị trí cuối hành trình tự tựa.
Khi nào không nên ngắt
- Trục đứng có tải treo, tải nặng có thể tự kéo trục quay ngược.
- Motor không hộp số kéo dây đai: khi ngắt, rotor nhảy về vị trí bước nguyên gần nhất, lệch tới nửa bước đến một bước.
Cách ngắt theo từng loại driver
| Driver | Cách ngắt / giảm dòng | Dòng còn lại |
| ULN2003 | Kéo cả 4 chân IN xuống mức thấp | Gần như bằng 0 |
| DRV8833 | Kéo nSLEEP xuống thấp | Vài µA |
| TB6612FNG | Kéo STBY xuống thấp | Rất nhỏ |
| DRV8834, STSPIN220 | Chân SLEEP/STBY hoặc ENABLE | Vài µA ở chế độ ngủ |
| TMC2208/2209 | Chân EN, hoặc giảm dòng giữ (IHOLD) qua UART | Giảm tùy mức đặt |
Gợi ý lập trình ngắn
- Với thư viện AccelStepper: sau khi distanceToGo() bằng 0, gọi disableOutputs(); trước lần chạy kế tiếp gọi enableOutputs().
- Với thư viện Stepper: thư viện không có hàm ngắt, phải tự ghi mức thấp cho 4 chân điều khiển sau mỗi lần quay.
- Khi bật lại pha, đặt lại đúng bước cuối cùng thay vì bước bất kỳ, để rotor không giật nửa bước.
9. Sơ đồ đấu điều khiển động cơ bước 5V thường gặp
Cấu hình 5 V đơn giản nhất cho người mới là 28BYJ-48 cắm module ULN2003 như ảnh dưới; cách đấu bộ này có trong bài về motor 5 dây. Hai bảng sau dành cho motor lưỡng cực, loại không dùng được ULN2003.

Cấu hình 1: motor lưỡng cực micro + DRV8833 + Arduino
| Chân DRV8833 | Nối tới | Ghi chú |
| VM | 5 V | Thêm tụ 100–470 µF sát chân |
| AIN1, AIN2 | 2 chân số Arduino | Điều khiển cuộn A |
| BIN1, BIN2 | 2 chân số Arduino | Điều khiển cuộn B |
| AOUT1, AOUT2 | Hai đầu cuộn A | Đo thông mạch để biết cặp dây |
| BOUT1, BOUT2 | Hai đầu cuộn B | Đảo một cặp để đổi chiều |
| nSLEEP | Chân số hoặc kéo lên | Mức thấp để ngủ, tiết kiệm điện |
| GND | GND chung |
Với cấu hình này, thư viện Stepper khai báo 4 chân theo thứ tự AIN1, AIN2, BIN1, BIN2; AccelStepper dùng kiểu FULL4WIRE với cùng thứ tự chân.
Cấu hình 2: driver STEP/DIR điện áp thấp (DRV8834) + vi điều khiển 3,3 V
| Chân DRV8834 | Nối tới | Ghi chú |
| VMOT, GND | 5 V và GND | Tụ hóa ≥ 47 µF sát chân |
| STEP | GPIO phát xung | Mỗi xung một bước hoặc vi bước |
| DIR | GPIO | Mức cao/thấp chọn chiều |
| SLEEP | GPIO hoặc kéo lên | Mức thấp để ngủ |
| M0, M1 | Kéo lên, kéo xuống hoặc để hở | Chọn vi bước theo bảng datasheet |
| A1, A2, B1, B2 | Hai cuộn motor | Cặp cùng cuộn đo thông mạch |
Với AccelStepper, khai báo kiểu DRIVER với hai chân STEP và DIR. Trước khi cắm motor, chỉnh biến trở giới hạn dòng ở mức thấp, sau đó tăng dần.
10. Lỗi hay gặp khi điều khiển động cơ bước 5V
| Hiện tượng | Nguyên nhân thường gặp | Cách xử lý |
| TB6612FNG không chạy dù đúng sơ đồ | Chân STBY để hở hoặc nối đất | Kéo STBY lên mức cao |
| Motor 5 V lưỡng cực rất nóng với DRV8833 | Không có giới hạn dòng, cuộn điện trở thấp | Hàn điện trở sense hoặc dùng DRV8834 |
| Chạy chậm thì được, tăng tốc là trượt bước | Nguồn 5 V không đủ khoảng dư so với điện áp cuộn | Giảm tốc, thêm gia tốc hoặc tăng nguồn |
| Motor 28BYJ-48 bản 12 V cấp 5 V quay yếu | Dòng chỉ còn khoảng 40 % định mức | Dùng bản 5 V hoặc nguồn 12 V |
| Motor giật một cái khi bật nguồn | Chân điều khiển trôi lúc khởi động | Thêm điện trở kéo xuống, bật nguồn motor sau |
Khi nào nên rời khỏi 5 V
- Cần mô-men lớn, tốc độ cao hoặc dùng motor NEMA 17 trở lên: chuyển sang nguồn 12–24 V và driver như A4988, TMC2209, hoặc module công suất lớn hơn như mạch điều khiển động cơ bước TB6600.
- Chỉ cần quay chậm liên tục, không cần định vị theo bước, chạy ắc quy: một motor 12V một chiều có hộp số đơn giản và khỏe hơn.
- Cần chạy liên tục nhiều giờ với tải lớn ở điện lưới: một động cơ giảm tốc mini phù hợp hơn hẳn động cơ bước 5 V.
11. Câu hỏi thường gặp về điều khiển động cơ bước 5V
- A4988 có chạy được với nguồn 5 V không? Không. A4988 cần nguồn motor tối thiểu khoảng 8 V; dưới ngưỡng này mạch khóa điện áp thấp giữ tầng công suất ở trạng thái tắt nên motor không nhận dòng. Chân logic VDD của A4988 nhận 3,3–5 V được, nhưng đó là nguồn logic, không phải nguồn motor. DRV8825 cũng vậy với ngưỡng khoảng 8,2 V, giảm dòng đặt không giúp IC khởi động. Muốn dùng STEP/DIR ở 5 V, chọn DRV8834 hoặc STSPIN220.
- Có thể lấy nguồn 5 V trực tiếp từ cổng USB máy tính để chạy động cơ bước không? Được với một motor nhỏ như 28BYJ-48 bản 5 V hoặc motor micro, tổng dòng cả board dưới khoảng 400–450 mA với cổng USB 2.0. Nhiều motor chạy đồng thời sẽ làm máy tính ngắt cổng hoặc cầu chì trên board nóng và tụt áp. An toàn nhất là dùng nguồn 5 V riêng cho motor và nối chung GND.
- Sạc điện thoại 5V 2A có nuôi được bao nhiêu motor 28BYJ-48? Về dòng, sạc 2 A thật đủ cho khoảng 3–4 motor chạy đồng thời cùng một board ESP32, nếu chừa khoảng 30 % dự phòng. Thực tế nhiều sạc giá rẻ tụt áp khi tải lớn, nên đo áp ở đầu module khi tất cả motor chạy; dưới 4,7 V là nguồn đang quá tải.
- ESP32 hay khởi động lại mỗi khi động cơ bước quay là do đâu? Gần như luôn do sụt áp đường 5 V làm ổn áp 3,3 V trên board không giữ được áp, kích hoạt mạch phát hiện thiếu áp. Tách nguồn motor khỏi nguồn board, đặt tụ hóa 470–1.000 µF sát driver và tăng tốc motor dần thay vì khởi động đột ngột.
- Raspberry Pi Pico có điều khiển trực tiếp được driver động cơ bước 5V không? Được, chân GPIO 3,3 V của Pico kích được ULN2003, DRV8833, TB6612FNG và các driver STEP/DIR điện áp thấp. Motor cấp từ chân VBUS khi cắm USB hoặc nguồn 5 V ngoài, không lấy từ chân 3V3. Bộ PIO của Pico phát xung bước rất đều, phù hợp cho cơ cấu cần chạy êm.
- Motor bước tháo từ ổ DVD có chạy được với nguồn 5 V không? Chạy được, đây là motor nam châm vĩnh cửu lưỡng cực điện áp thấp, thường 18° mỗi bước kèm trục vít me. Dùng DRV8833 hoặc DRV8834, bắt đầu ở dòng thấp và tăng dần. Không dùng ULN2003 vì motor chỉ có 4 dây, không có dây chung.
- Động cơ bước 5V chạy bằng 1 cell pin Li-ion 3,7 V được không? Được với driver hoạt động dưới 4 V như DRV8833, DRV8834, STSPIN220; lực giảm khoảng tương ứng với tỉ lệ điện áp so với 5 V. Nếu cần đủ lực, thêm mạch tăng áp lên 5 V. ULN2003 vẫn đóng cắt được ở 3,7 V nhưng sụt áp Darlington làm motor 5 V còn rất yếu.
- Vì sao motor chạy bằng sạc dự phòng một lúc thì cả mạch tắt? Sạc dự phòng tự ngắt khi dòng tải dưới ngưỡng, thường khoảng 50–100 mA trong vài chục giây, xảy ra khi motor đứng và đã ngắt pha. Dùng sạc có chế độ dòng thấp, thêm tải giả theo chu kỳ, hoặc chuyển sang nguồn pin có mạch bảo vệ riêng.
- Có cần chuyển mức logic khi dùng vi điều khiển 3,3 V với driver chạy nguồn 5 V không? Với ULN2003, DRV8833, TB6612FNG (VCC 3,3 V), DRV8834, STSPIN220, TMC2208 thì không cần, vì các IC này nhận 3,3 V là mức cao. Chỉ cần chuyển mức theo chiều ngược lại: tín hiệu từ module đi về chân GPIO của Raspberry Pi hay ESP32 mà có điện trở kéo lên 5 V.
- Có thể điều khiển động cơ bước 5V trực tiếp từ chân Arduino không qua driver không? Chỉ với motor kim đồng hồ X27.168, VID28 dòng khoảng 20 mA mỗi cuộn. Motor khác như 28BYJ-48 hay motor micro ăn 100–400 mA, vượt xa giới hạn chân GPIO khoảng 20–40 mA, sẽ làm hỏng vi điều khiển.
- Ngắt điện cuộn dây khi động cơ bước 5V đứng yên có làm mất vị trí không? Với motor có hộp số tỉ số lớn hoặc vít me ren nhỏ thì hầu như không, vì ma sát tự giữ tải. Với motor không hộp số, rotor có thể nhảy về bước nguyên gần nhất khi ngắt, lệch tới một bước; khi bật lại pha phải cấp đúng bước cuối cùng. Tải treo trục đứng thì không nên ngắt.
- Dùng TMC2209 ở 5 V có chạy êm như ở 24 V không? Ở tốc độ thấp vẫn êm, nhưng nguồn 5 V chỉ cao hơn ngưỡng tối thiểu 4,75 V một chút nên dễ ngắt khi nguồn tụt, và lực giảm nhanh khi tăng tốc. TMC2209 ở 5 V chỉ hợp lý cho cơ cấu nhẹ, chậm, nguồn ổn định và dây ngắn.






