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

Điều khiển động cơ bước dùng L298: tính nguồn, đấu dây, full/half step và ghép L297 băm dòng

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 14:50

Điều khiển động cơ bước dùng L298 là cách chạy một động cơ bước lưỡng cực 2 pha bằng IC cầu H kép L298 (thường ở dạng module L298N màu đỏ): vi điều khiển đảo chiều dòng qua hai cuộn dây theo trình tự để rôto quay từng bước. Phương án này rẻ, dễ học, phù hợp cho mô hình, bài thực hành và cơ cấu chạy chậm với motor dòng nhỏ dưới khoảng 1 A mỗi pha.

Điểm cần hiểu ngay: L298 chỉ là bộ khóa đóng cắt, không tự giới hạn dòng như driver động cơ bước hiện đại. Dòng qua cuộn dây do điện áp nguồn, sụt áp trên IC và điện trở cuộn quyết định. Chọn sai nguồn hoặc chọn motor "dòng cao, áp thấp" là nguyên nhân của gần như mọi ca L298N nóng bỏng tay, motor yếu, mất bước hay Arduino tự khởi động lại.

Các mục dưới đây đi từ thông số IC, cấu tạo module, cách tính nguồn theo điện trở cuộn, sơ đồ đấu, trình tự full step và half step, cách dùng chân ENA/ENB, tới phương án ghép L297 với chân SENSE để có băm dòng thật. Nguyên lý chung về step motor có ở bài tổng quan động cơ bước.

1. Điều khiển động cơ bước dùng L298 là gì và khi nào còn đáng dùng

L298 gồm hai mạch cầu H độc lập dùng transistor lưỡng cực (BJT), mỗi cầu có hai lối vào chiều (IN) và một lối vào cho phép (EN). Một cầu H đảo chiều dòng trong một cuộn, nên hai cầu điều khiển được đúng một động cơ bước lưỡng cực 4 dây, hoặc hai motor DC chổi than. Cuộn A nối OUT1–OUT2, cuộn B nối OUT3–OUT4; vi điều khiển xuất bốn tín hiệu IN1–IN4 theo bảng trình tự, mỗi lần đổi trạng thái rôto nhảy một bước (1,8° với motor 200 bước/vòng). Cách tìm cặp dây cùng cuộn trình bày ở mục 5.

Chữ "N" trong L298N không phải bản nâng cấp mà là kiểu vỏ: L298N là vỏ Multiwatt15 chân đứng có tai bắt tản nhiệt, L298HN là Multiwatt15 chân nằm, L298P là vỏ dán PowerSO20 trên các shield Arduino. Thông số điện như nhau, nhưng L298P tản nhiệt qua đồng mạch in nên thường nóng nhanh hơn module đỏ khi kéo cùng một motor.

Khi nào L298 còn hợp lý

  • Motor bước điện trở cuộn khoảng 10 Ω trở lên, dòng dưới 1 A: L298 tự giới hạn dòng nhờ điện trở cuộn, IC không quá nóng.
  • Học cầu H, đồ án cần quan sát từng trạng thái IN1–IN4 bằng LED hay máy hiện sóng.
  • Cơ cấu nhẹ, chạy chậm, chu kỳ làm việc ngắn: biển xoay, van nhỏ, cơ cấu mở nắp.

Khi nào không nên dùng

  • NEMA 17 máy in 3D loại 1,5–2 A, điện trở 1–2 Ω: IC nóng hơn cả motor và không chỉnh được dòng.
  • Cần chạy êm, vi bước, tốc độ cao, hoặc motor NEMA 23 trở lên dòng 2,8–4 A.

Nếu chỉ cần quay liên tục và chỉnh tốc độ, không cần định vị theo bước, thì một motor 12V DC có hộp số chạy bằng chính module L298N hợp lý hơn: L298N vốn sinh ra để đảo chiều và băm xung cho motor chổi than.

2. Thông số IC L298 cần biết trước khi đấu động cơ bước

Thông sốGiá trịÝ nghĩa thực tế
Nguồn công suất VsTối đa 46 V (tuyệt đối 50 V)Module thường chỉ chịu khoảng 35 V
Nguồn logic Vss4,5–7 VLogic luôn cần 5 V, kể cả khi motor chạy 24 V
Ngưỡng mức cao lối vàoTừ 2,3 VTín hiệu 3,3 V đủ mức cao
Dòng mỗi kênh2 A liên tục; 2,5 A lặp lại; 3 A xung 100 µs"2 A" là giới hạn chịu đựng, không phải dòng nên chạy
Sụt áp tổng mỗi cầu HĐiển hình 1,8 V (tối đa 3,2 V) ở 1 A; tối đa 4,9 V ở 2 AĐiện áp lên cuộn luôn thấp hơn nguồn
Điện áp chân SENSE−1 V đến 2,3 VCho phép đặt điện trở shunt đo dòng
Tần số chuyển mạch25–40 kHzBăm vài chục kHz là tối đa
Nhiệt trở Multiwatt153 °C/W mối nối – vỏ; 35 °C/W mối nối – môi trườngKhông tản nhiệt, 3 W đã đẩy chip lên trên 100 °C
Nhiệt độ mối nối khi hoạt độngTới 130 °CVượt mức này IC giảm tuổi thọ hoặc hỏng

Hai dòng quan trọng nhất là sụt áp và nhiệt trở. Mỗi cầu H dùng BJT luôn "ăn" khoảng 1,8–3,2 V ở 1 A, trong khi driver MOSFET như A4988, TMC2209 chỉ sụt vài trăm mV ở cùng dòng. Đó là lý do L298 nóng hơn hẳn mọi driver đời mới.

Sơ đồ chân IC L298N (Multiwatt15)

ChânTênChức năng
1 / 15SENSE A / SENSE BChân phát của mỗi cầu, nối shunt hoặc nối thẳng GND
2, 3 / 13, 14OUT1, OUT2 / OUT3, OUT4Đầu ra cầu A / cầu B, nối cuộn A / cuộn B
4VsNguồn motor
5, 7 / 10, 12IN1, IN2 / IN3, IN4Lối vào chiều cầu A / cầu B
6 / 11ENA / ENBCho phép cầu A / cầu B
8 / 9GND / VssMass chung / nguồn logic 5 V

3. Bên trong module L298N: jumper 5V, ENA/ENB, diode và chân SENSE

Module L298N đỏ phổ thông gồm IC L298N gắn tản nhiệt nhôm, ổn áp 78M05, hai tụ hóa khoảng 220 µF, tám diode dập, đèn báo nguồn, cầu đấu vít và ba jumper.

Sơ đồ module L298N nối Arduino và nguồn 6–12V, kênh A ra OUT1-OUT2, kênh B ra OUT3-OUT4 – khi điều khiển động cơ bước dùng L298 thì hai kênh nối hai cuộn dây

Hình trên đấu hai motor DC ở kênh A và kênh B. Với động cơ bước, vị trí motor A thay bằng cuộn A, motor B thay bằng cuộn B của cùng một động cơ; nguồn và dây tín hiệu giữ nguyên, chỉ khác bốn chân IN được điều khiển theo trình tự bước.

Cầu đấu +12V, GND, +5V

  • Cọc "+12V" thực chất là nguồn công suất Vs, nhận khoảng 7–35 V khi dùng ổn áp trên module; nhãn 12V chỉ là gợi ý.
  • Cọc "+5V" là ngõ ra 5 V của 78M05 khi cắm jumper, và thành ngõ vào bắt buộc cấp 5 V ngoài khi rút jumper.
  • GND phải nối chung với GND vi điều khiển. Thiếu mass chung là lỗi số một khiến module không phản ứng dù đèn vẫn sáng.

Jumper 5V: chỉ cắm khi nguồn từ khoảng 7 đến 12 V

78M05 là ổn áp tuyến tính, phần chênh áp biến thành nhiệt: cấp 24 V và lấy 100 mA thì ổn áp đốt (24 − 5) × 0,1 ≈ 1,9 W, quá sức nó. Nguồn trên 12 V hoặc dưới 7 V (không đủ chênh áp) thì rút jumper và cấp 5 V riêng. Không bao giờ vừa cắm jumper vừa cấp 5 V từ ngoài vào cọc +5V. Khi cắm jumper, có thể lấy 5 V từ module cho Arduino nhưng nên giữ dưới vài trăm mA.

Jumper ENA và ENB

Hai jumper nối chân EN lên 5 V, cầu H luôn được cho phép; đủ để chạy full step hay half step. Rút ra khi muốn dùng EN để nhả motor, giảm dòng giữ bằng PWM hoặc nối với L297 (mục 7, 8). Đã rút mà để trống thì cầu tương ứng không dẫn, motor đứng im.

Diode "M7" và giới hạn 35 V

Tám diode trên đa số module ký hiệu M7, tương đương 1N4007, loại phục hồi chậm dùng cho chỉnh lưu 50 Hz. Bảng thông số L298 khuyến nghị diode phục hồi nhanh (không quá 200 ns) hoặc Schottky khi tải cảm có băm xung. Full step tốc độ thấp thì diode chậm vẫn tạm ổn, nhưng khi băm PWM trên EN hoặc ghép L297 thì nên thay bằng diode nhanh 2 A. Tụ và ổn áp trên module thường chỉ chịu 35 V, nên dù IC chịu 46 V, module không nên cấp quá khoảng 30 V để có khoảng dư.

Chân SENSE đã nối thẳng xuống GND

Trên module phổ thông, SENSE A và SENSE B nối thẳng mass, không có shunt. Module hoàn toàn không đo được dòng, không giới hạn dòng, không bảo vệ ngắn mạch.

4. Vì sao L298 không hạn dòng và cách chọn động cơ bước phù hợp

Driver hiện đại đo dòng hàng chục nghìn lần mỗi giây và cắt khi dòng chạm ngưỡng, nên dùng được nguồn cao gấp 10–20 lần điện áp định mức motor. L298 trên module nối cuộn dây thẳng vào nguồn qua hai transistor, dòng ổn định chỉ theo định luật Ohm:

I ≈ (Vs − Vsụt) / R

Vs là nguồn motor, Vsụt là sụt áp tổng trên cầu H (khoảng 1,5–2 V dưới 1 A, 3–4 V trên 1,5 A), R là điện trở một cuộn. Vì vậy cách duy nhất để đặt dòng đúng khi điều khiển động cơ bước dùng L298 là chọn đúng điện áp nguồn, hoặc chọn motor có điện trở cuộn đủ lớn.

Quy trình chọn nguồn theo điện trở cuộn

1. Đọc dòng (A/phase) và điện trở (Ω/phase) trên tem; không có tem thì đo bằng đồng hồ vạn năng, trừ điện trở que đo.

2. Tính Vcuộn = I × R, cộng sụt áp L298 (khoảng 1,5 V ở 0,4–0,6 A, khoảng 2 V ở 1 A).

3. Chọn nguồn bằng hoặc thấp hơn tổng đó 10–20%: lực giảm nhẹ nhưng mát hơn đáng kể.

4. Tính công suất nhiệt trên IC (mục 9); vượt khoảng 3–4 W khi chạy liên tục thì L298N không hợp với motor đó.

Motor (thông số mỗi pha)Điện áp trên cuộnNguồn cho L298NĐánh giá
Step 42 loại 12 V: 0,4 A, 30 Ω12 VKhoảng 12–13,5 VRất hợp, IC tỏa khoảng 1,2 W
Step 42 loại 1 A, 4 Ω4 VKhoảng 5,5–6 V, rút jumper 5VChạy được, IC tỏa khoảng 3,6 W
17HS4401: 1,7 A, 1,5 ΩKhoảng 2,6 VKhoảng 5,5–6,5 VKhông nên, IC tỏa trên 10 W

Vì sao NEMA 17 "dòng cao, áp thấp" nóng khi dùng L298N

Phần lớn NEMA 17 cho máy in 3D như 17HS4401, 17HS8401 được thiết kế cho driver băm dòng: điện áp định mức chỉ 2,5–3 V, dòng 1,5–2 A, điện trở 1–2 Ω. Cắm vào L298N với nguồn 12 V:

  • Dòng muốn lên (12 − 3) / 1,5 = 6 A, bị chặn ở mức bão hòa transistor; IC vừa dẫn dòng lớn vừa sụt áp lớn, công suất vượt xa sức tản nhiệt của module.
  • Motor nhận dòng vượt định mức, nóng nhanh lên 80–90 °C, lâu dài lão hóa men cách điện.
  • Hạ nguồn xuống 5–6 V cho đúng dòng thì IC vẫn nóng hơn motor, vì sụt áp trên L298 (3–4 V) lớn hơn cả điện áp rơi trên cuộn (khoảng 2,6 V).

Motor càng "dòng cao, áp thấp" càng không hợp với L298. Kích thước, chiều dài thân và mô-men của dòng này xem ở bài động cơ bước NEMA 17.

Hằng số L/R: vì sao chạy nhanh là yếu

Dòng trong cuộn tăng theo hằng số thời gian τ = L / R. Motor 17HS4401 có khoảng 2,8 mH và 1,5 Ω nên τ ≈ 1,9 ms, cần khoảng 3τ ≈ 5,6 ms để dòng gần đủ. Với L298, nguồn buộc phải thấp xấp xỉ I × R, nên khi mỗi bước ngắn hơn khoảng này, dòng chưa kịp lên đã bị đảo và mô-men tụt nhanh. L298 cho mô-men tốt ở vài chục đến vài trăm bước mỗi giây, còn driver băm dòng dùng nguồn 24–36 V đẩy dòng lên nhanh hơn nhiều lần. Cách cũ là mắc thêm điện trở công suất nối tiếp mỗi cuộn để dùng nguồn cao hơn, nhưng mỗi điện trở đốt vài watt nên ngày nay hiếm khi đáng làm.

5. Đấu dây động cơ bước với module L298N và vi điều khiển

Trước khi đấu, xác định hai cặp dây cùng cuộn bằng đồng hồ vạn năng: cùng cuộn cho vài đến vài chục ohm, khác cuộn hở mạch. Motor 6 dây dùng được bằng cách bỏ trống hai dây giữa và đấu cả cuộn; cách nhận diện motor 6 dây có ở bài động cơ bước đơn cực.

Điểm trên moduleNối tớiGhi chú
OUT1, OUT2Hai dây cuộn AĐảo hai dây này thì motor đổi chiều
OUT3, OUT4Hai dây cuộn BKhông lẫn dây cuộn A sang đây
IN1–IN4D8, D9, D10, D11 ArduinoChân số bất kỳ, sửa lại trong code
ENA, ENBGiữ jumper, hoặc nối chân số/PWMRút jumper để trống thì motor không chạy
+12V, GNDNguồn motor đã tính ở mục 4; GND chung với ArduinoNên có cầu chì
+5VTheo quy tắc jumper ở mục 3Rút jumper thì phải cấp 5 V vào đây

Đấu dây module L298N với Arduino Uno: IN1–IN4 vào chân 9–12, nguồn 12V vào cọc 12V và Vin, ví dụ motor DC chỉ dùng IN3, IN4 – động cơ bước L298N dùng đủ bốn chân IN

Hình trên là module L298N với một motor DC giảm tốc, chỉ dùng kênh B. Khi điều khiển động cơ bước dùng L298, cả bốn chân IN1–IN4 đều phải nối vi điều khiển vì hai cuộn được đảo chiều phối hợp. Cách cấp nguồn trong hình (cọc 12V nối lên Vin Arduino) chỉ ổn với nguồn 7–12 V; cao hơn sẽ làm nóng ổn áp trên Arduino.

Vi điều khiển 3,3 V và PLC

  • ESP32, STM32, Raspberry Pi xuất 3,3 V điều khiển trực tiếp IN và EN được, nhưng L298 vẫn cần 5 V ở cọc +5V; không nối cọc này vào chân 3,3 V của board.
  • Lối vào IN, EN chịu tối đa 7 V, không nối thẳng đầu ra 24 V của PLC; phải chuyển mức qua optocoupler, hoặc dùng driver nhận xung 24 V như bài điều khiển động cơ bước bằng PLC.

Lưu ý đi dây

  • Xoắn đôi từng cặp dây cuộn, đi xa dây tín hiệu; thêm tụ 470–1000 µF sát cọc nguồn khi dây nguồn dài.
  • Bảng thông số L298 khuyên kéo EN xuống thấp trước khi bật hoặc tắt nguồn công suất; với module giữ jumper EN thì bật nguồn logic trước, nguồn motor sau.

6. Trình tự full step, half step và wave drive với L298

L298 chỉ làm theo trạng thái bốn chân IN, toàn bộ "trí khôn" nằm ở trình tự vi điều khiển xuất ra.

Full step hai pha (mô-men cao nhất)

Cả hai cuộn luôn có dòng, 1,8° mỗi bước; đây cũng là trình tự thư viện Stepper của Arduino dùng cho motor 4 dây:

BướcIN1IN2IN3IN4
11010
20110
30101
41001

Chạy ngược bảng thì motor đổi chiều. Hai cầu H cùng dẫn nên nhiệt trên L298 gấp đôi so với khi chỉ một cuộn có dòng.

Wave drive một pha (ít nóng nhất)

Mỗi lúc một cuộn: 1000, 0010, 0100, 0001 (thứ tự IN1–IN4). Góc bước vẫn 1,8° nhưng mô-men còn khoảng 70%, đổi lại IC và motor mát hơn khoảng một nửa.

Half step (400 bước/vòng)

Trạng tháiIN1IN2IN3IN4
11000
21010
30010
40110
50100
60101
70001
81001

Ở trạng thái một cuộn, mô-men tụt còn khoảng 70% nên half step trên L298 có lực "nhấp nhô" mà driver băm dòng mới bù được.

Thư viện và vài dòng code

  • Stepper có sẵn: `Stepper motor(200, 8, 9, 10, 11);`, `motor.setSpeed(60);` (vòng/phút), `motor.step(200);`. Chỉ full step, hàm step() chặn chương trình, không có tăng tốc.
  • AccelStepper: `AccelStepper motor(AccelStepper::FULL4WIRE, 8, 9, 10, 11);`, đổi `HALF4WIRE` để chạy half step; có tăng/giảm tốc, không chặn chương trình, có `disableOutputs()` để nhả motor.
  • Khai báo chân đúng thứ tự IN1, IN2, IN3, IN4. Thứ tự đảo kiểu 8, 10, 9, 11 trong các ví dụ cho 28BYJ-48 dùng sang L298 sẽ làm motor chỉ rung.
  • Tăng `setMaxSpeed()` và `setAcceleration()` dần đến khi bắt đầu mất bước rồi lùi lại 20–30%.

Kỹ thuật điều khiển chung cho mọi driver lưỡng cực (STEP/DIR, gia tốc S-curve, vi bước sin–cos) có ở bài điều khiển động cơ bước lưỡng cực.

7. Chân ENA/ENB: nhả motor, giảm dòng giữ và kiểu suy giảm dòng

Trạng thái chânCầu H làm gìHệ quả với cuộn dây
EN = 1, IN1 ≠ IN2Cặp khóa chéo dẫnCuộn có dòng theo một chiều
EN = 1, IN1 = IN2Hai khóa cùng phía dẫn, cuộn bị chậpDòng tắt chậm (slow decay), trục "ghìm"
EN = 0Bốn khóa tắtDòng xả qua diode về nguồn (fast decay), motor tự do

Nhả motor khi đứng yên

Động cơ bước đứng yên vẫn ăn đủ dòng để giữ trục, nên đây là lúc L298 nóng nhất. Nếu tải không tự trôi (bàn ngang, có hộp số trục vít tự hãm), kéo ENA, ENB xuống 0 hoặc gọi disableOutputs() khi đứng lâu. Nếu trong lúc nhả tải đẩy trục xoay đi, khi cấp lại dòng rôto nhảy về vị trí cân bằng gần nhất, có thể lệch tới khoảng hai bước đủ; cơ cấu cần vị trí tuyệt đối thì phải về gốc lại hoặc giữ dòng.

Giảm dòng giữ bằng PWM trên EN

Rút jumper, nối ENA, ENB chung vào một chân PWM: chạy thì 100%, đứng yên khoảng 30–50%. Dòng trung bình giảm gần theo tỉ lệ, thường vẫn đủ giữ tải.

  • PWM mặc định của Arduino Uno khoảng 490 Hz hoặc 980 Hz, motor sẽ kêu rít; đổi bộ chia timer lên khoảng 20–31 kHz.
  • Mỗi chu kỳ EN về 0, dòng xả qua tám diode; diode M7 chậm sẽ nóng hơn ở PWM tần số cao.
  • Đây là giảm dòng "mở vòng", nguồn dao động thì dòng dao động theo.

Về lý thuyết có thể xuất PWM sin–cos trên EN để giả lập vi bước, nhưng PWM chỉnh điện áp chứ không chỉnh dòng; khi quay, điện cảm và sức phản điện động làm dòng lệch xa giá trị mong muốn, vị trí vi bước rất không đều.

8. Ghép L297 với L298 để băm dòng

L298 vốn được thiết kế làm tầng công suất cho IC điều khiển L297. Cặp L297 + L298 là driver lưỡng cực kinh điển, chạy tới 2 A mỗi pha với băm dòng thật và nhận xung bước, chiều quay như driver hiện đại. L297 gồm bộ dịch trạng thái (nhận CLOCK, CW/CCW, tự sinh trình tự cho L298) và bộ băm dòng (so điện áp trên shunt ở chân SENSE với Vref, chạm ngưỡng thì cắt đến chu kỳ dao động kế tiếp).

Chân L297TênNối / cách dùng
18, 17CLOCK, CW/CCWXung bước (rộng tối thiểu 0,5 µs) và chiều quay
19HALF/FULLMức cao: half step; mức thấp: full step
10, 20ENABLE, RESETMức thấp: tắt đầu ra / về trạng thái gốc
4, 6, 7, 9A, B, C, DIN1, IN2, IN3, IN4 của L298
5, 8INH1, INH2ENA, ENB của L298
14, 13SENS1, SENS2SENSE A, SENSE B của L298 (đầu trên shunt)
15, 16Vref, OSCĐiện áp đặt dòng 0–3 V; mạch RC tần số băm
11, 1CONTROL, SYNCChọn kiểu băm; đồng bộ nhiều L297

Tính shunt và Vref

Dòng đỉnh mỗi pha I = Vref / Rs. Với Rs = 0,5 Ω: Vref 0,25 V cho 0,5 A; 0,5 V cho 1 A; 0,75 V cho 1,5 A; 1 V cho 2 A (shunt tỏa khoảng 2 W). Dùng điện trở không dây quấn, 2–3 W, đặt sát chân GND của L298; điện áp trên SENSE phải dưới 2 V.

Tần số băm và chân CONTROL

  • f ≈ 1 / (0,69 × R × C); R = 22 kΩ, C = 3,3 nF cho khoảng 20 kHz, vượt ngưỡng nghe và trong khả năng của L298.
  • CONTROL mức cao: băm trên chân pha, dòng tắt chậm, ít gợn, hợp tốc độ thấp và trung bình.
  • CONTROL mức thấp: băm trên INH, dòng tắt nhanh qua diode, bám dòng tốt hơn ở tốc độ cao nhưng gợn và nhiệt diode lớn hơn.
  • Nhiều L297 trên một bo: nối chung SYNC, chỉ gắn RC trên một con, các con khác nối OSC xuống mass.

Với L297 + L298, có thể dùng nguồn 24–36 V cho motor 2,5–3 V mà dòng vẫn đúng, motor khỏe hơn hẳn ở tốc độ cao. Tuy vậy L297 chỉ có full step và half step, không có vi bước, và sụt áp BJT của L298 vẫn còn nguyên.

Sửa module L298N đỏ để ghép L297

Phải cắt mạch nối SENSE xuống mass, hàn thêm hai shunt, câu dây SENSE về L297, rút jumper ENA/ENB để nối INH1/INH2, và nên thay tám diode M7 bằng diode nhanh hoặc Schottky. Công sức và linh kiện thường vượt giá một driver băm dòng mới; chỉ đáng làm khi mục đích là học nguyên lý.

9. Nhiệt độ và tản nhiệt L298 khi chạy động cơ bước

Ở full step hai pha, công suất trên L298 xấp xỉ P ≈ 2 × Vsụt × I (hai cầu cùng dẫn).

Dòng mỗi phaSụt áp mỗi cầuCông suất trên L298Nhận xét
0,4 AKhoảng 1,5 VKhoảng 1,2 WTản nhiệt sẵn dư sức
1,0 AKhoảng 1,8–2 VKhoảng 3,6–4 WNóng, nên có quạt nếu chạy liên tục
1,5 AKhoảng 2,5–3 VKhoảng 7,5–9 WVượt sức tản nhiệt module
2,0 ATới 4,9 VTới gần 20 WChỉ được với tản nhiệt lớn và quạt mạnh

Wave drive giảm công suất khoảng một nửa; half step nằm giữa hai mức.

  • Chạm tản nhiệt không giữ tay được quá 3 giây nghĩa là đã trên khoảng 60 °C, mối nối bên trong còn nóng hơn nhiều.
  • Đo dòng bằng ampe kế ở dây nguồn khi motor đứng yên giữ trục; ở full step, dòng nguồn xấp xỉ tổng dòng hai cuộn.
  • Đã giảm dòng, nhả motor khi đứng, thêm quạt mà IC vẫn nóng thì motor không hợp với L298.

10. So sánh L298 với driver động cơ bước hiện đại

DriverĐiện áp motorDòng mỗi phaHạn dòngVi bước
L298N (BJT)4,5–46 V (module ~35 V)Thực tế ≤ 1 AKhôngKhông
L293D (BJT)4,5–36 V0,6 A (đỉnh 1,2 A)KhôngKhông
TB6612FNG2,5–13,5 V1,2 A (đỉnh 3,2 A)KhôngKhông
A49888–35 VTới 2 A, ~1 A nếu không tản nhiệt thêmCó1/16
DRV88258,2–45 VTới 2,5 A, ~1,5 A nếu không tản nhiệt thêmCó1/32
TMC22094,75–29 V2 A hiệu dụngCó1/256 nội suy

Hướng đổi driver thường gặp:

11. Lỗi thường gặp khi điều khiển động cơ bước dùng L298

Hiện tượngNguyên nhân thường gặpCách xử lý
Đèn sáng nhưng motor không khóa trụcThiếu GND chung; rút jumper 5V không cấp 5 V ngoài; EN để trốngNối GND chung, kiểm tra 5 V logic, kéo EN lên 1
Rung tại chỗ, quay tới luiLẫn dây cuộn A sang B; sai thứ tự IN trong codeĐo lại cặp dây; khai báo đúng IN1–IN4
L298N nóng bỏng sau vài chục giâyMotor dòng cao điện trở thấp; nguồn quá caoTính lại nguồn; nhả motor khi đứng; đổi driver
Chậm thì khỏe, tăng tốc là mất bướcHằng số L/R lớn; không có gia tốcThêm tăng tốc dần; dùng L297 hoặc driver băm dòng
Kêu rít khi đứng yênPWM trên EN ở tần số nghe đượcNâng PWM lên khoảng 20 kHz
Arduino tự khởi động lạiSụt áp, nhiễu từ cuộn; lấy 5 V module quá tảiTách nguồn logic, thêm tụ lọc, đi dây xa nhau
Motor chỉ chạy được một cuộnCháy nửa cầu H do ngắn mạch hoặc rút dây khi đang chạyĐổi motor sang kênh kia để xác nhận; thay IC

12. Câu hỏi thường gặp về điều khiển động cơ bước dùng L298

  • L298N có chạy được động cơ bước NEMA 17 không? Được với mã điện trở cuộn cao, dòng khoảng 0,3–1 A. Với loại 1,5–2 A, điện trở 1–2 Ω của máy in 3D, motor vẫn quay nhưng IC tỏa nhiệt nhiều hơn motor và không chỉnh được dòng, nên dùng A4988 hay TMC2209.
  • Nên cấp nguồn bao nhiêu vôn cho L298N khi điều khiển động cơ bước? Lấy dòng định mức nhân điện trở cuộn, cộng khoảng 1,5–2 V sụt áp, chọn nguồn bằng hoặc thấp hơn một chút. Motor 0,4 A, 30 Ω cần khoảng 12–13,5 V; motor 1 A, 4 Ω chỉ cần 5,5–6 V.
  • Khi nào phải rút jumper 5V trên module L298N? Khi nguồn motor trên 12 V (78M05 quá nóng) hoặc dưới khoảng 7 V (không đủ chênh áp). Rút rồi thì bắt buộc cấp 5 V ngoài vào cọc +5V, nếu không logic L298 không hoạt động.
  • Điều khiển động cơ bước có cần tháo jumper ENA, ENB không? Không bắt buộc; giữ jumper vẫn chạy full step, half step bình thường. Chỉ tháo khi cần nhả motor, giảm dòng giữ bằng PWM hoặc ghép L297, và khi tháo thì phải nối EN vào vi điều khiển.
  • L298N có chạy vi bước được không? Không theo nghĩa đúng, chỉ có full step, half step và wave drive. PWM sin–cos trên EN chỉ giả lập được vi bước rất không đều; ghép L297 cũng chỉ thêm băm dòng, không thêm vi bước.
  • Vì sao điện áp ở OUT1–OUT2 thấp hơn nguồn 2–3 V? Đó là sụt áp bão hòa của hai BJT trong cầu H, điển hình 1,8 V ở 1 A và tới 4,9 V ở 2 A. Đây là đặc tính bình thường, không phải module hỏng.
  • Module L298N một kênh chịu được 2 A thật không? 2 A là giới hạn liên tục của IC, không phải mức chạy thoải mái. Ở 2 A, full step tỏa gần 20 W trên IC, vượt xa tản nhiệt của module; nên giữ dưới khoảng 1 A mỗi pha khi chạy liên tục.
  • Ghép song song hai kênh L298 để tăng dòng cho động cơ bước được không? Với một con L298 thì không, vì cần cả hai cầu cho hai cuộn. Ghép kênh 1 với 4, kênh 2 với 3 (khoảng 3 A) chỉ dành cho một motor DC; động cơ bước muốn ghép song song phải dùng hai IC.
  • Một module L298N điều khiển được mấy động cơ bước? Một động cơ bước lưỡng cực 2 pha. Không mắc song song hai motor bước vào một module vì dòng cộng lại làm L298 quá tải.
  • ESP32 hay Raspberry Pi điều khiển trực tiếp L298N được không? Được, ngưỡng mức cao của L298 chỉ từ 2,3 V. Phần logic vẫn cần 5 V riêng ở cọc +5V và GND phải nối chung.
  • Có điều khiển L298N bằng tín hiệu STEP/DIR như TB6600 được không? Không trực tiếp, vì L298 nhận bốn tín hiệu pha. Có thể ghép L297 để đổi CLOCK và CW/CCW thành tín hiệu pha, hoặc cho vi điều khiển đọc STEP/DIR rồi tự xuất IN1–IN4; với GRBL hay Mach3, dùng driver STEP/DIR có sẵn đơn giản hơn.
  • Động cơ bước đứng yên mà L298N vẫn nóng có bình thường không? Bình thường, vì để giữ trục L298 vẫn cấp đủ dòng, thậm chí nóng hơn lúc quay do không có sức phản điện động làm giảm dòng. Hãy nhả motor qua chân EN khi không cần giữ, hoặc giảm dòng giữ bằng PWM 30–50%.
2.571 reviews

Tin tức liên quan

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
Điều khiển động cơ DC servo: vòng dòng – tốc độ – vị trí, PID, encoder và cầu H

Điều khiển động cơ DC servo: vòng dòng – tốc độ – vị trí, PID, encoder và cầu H

12 thg 10 2026 08:32

Hướng dẫn điều khiển động cơ DC servo: 3 vòng dòng – tốc độ – vị trí, đọc encoder x4, cầu H BTS7960/VNH5019, PWM 20 kHz, chỉnh PID và code Arduino mẫu.
Đọc tiếp