Điện áp, dòng điện, công suất: định luật Ohm áp dụng thế nào khi làm nhúng
Atlasbot · 20/8/2026 · 10 phút đọc
Cắm LED thẳng vào chân GPIO 5V mà không qua điện trở, gần như chắc chắn LED sẽ cháy trong vài giây. Hiểu điện áp, dòng điện, và công suất — cùng định luật Ohm liên kết chúng — là kiến thức tối thiểu để không biến mỗi lần đấu mạch thành một canh bạc đốt linh kiện.
Ba đại lượng cơ bản
- Điện áp (Voltage, U hoặc V, đơn vị Volt) — chênh lệch điện thế giữa 2 điểm, là "lực đẩy" khiến electron di chuyển. Có thể hình dung như áp suất nước trong ống — áp suất càng cao, nước chảy càng mạnh.
- Dòng điện (Current, I, đơn vị Ampere/A) — lượng electron thực sự di chuyển qua một điểm trong mạch mỗi giây. Tiếp tục ví dụ ống nước: dòng điện giống lưu lượng nước chảy qua ống.
- Công suất (Power, P, đơn vị Watt) — tốc độ tiêu thụ/chuyển hoá năng lượng, tính bằng
P = U × I. Đây là con số quyết định linh kiện toả nhiệt bao nhiêu và pin cạn nhanh cỡ nào.
Định luật Ohm — công thức quan trọng nhất
U = I × R
U: điện áp (Volt)
I: dòng điện (Ampere)
R: điện trở (Ohm, Ω)
Định luật Ohm mô tả quan hệ giữa 3 đại lượng trong một điện trở (hoặc linh kiện có tính trở thuần) — biết 2 trong 3 giá trị, tính được giá trị còn lại. Đây là công thức dùng thường xuyên nhất khi tính điện trở hạn dòng cho LED, hoặc ước lượng dòng tiêu thụ của một mạch.
Ví dụ tính điện trở hạn dòng cho LED
LED thường cần khoảng 20mA (0.02A) và sụt áp khoảng 2V (tuỳ màu LED, xem datasheet). Cấp nguồn 5V từ GPIO, cần tính điện trở để phần điện áp dư (5V - 2V = 3V) không làm dòng vượt quá 20mA:
R = U / I = 3V / 0.02A = 150Ω
Chọn điện trở 150Ω (hoặc giá trị chuẩn gần nhất, VD: 220Ω để an toàn hơn) mắc nối tiếp với LED — đây chính là phép tính đứng sau lời khuyên "luôn có điện trở trước LED" mà mọi hướng dẫn Arduino đều nhắc.
Tóm lại: U = I × R là công cụ để tính "cần điện trở bao nhiêu để dòng không vượt giới hạn an toàn của linh kiện" — không phải công thức học thuộc suông.
Công suất và vì sao động cơ cần nguồn riêng
Chân GPIO trên hầu hết vi điều khiển chỉ chịu được dòng rất nhỏ — thường tối đa 20-40mA mỗi chân (xem datasheet cụ thể, VD: STM32 thường giới hạn ~20mA/chân, tổng dòng toàn chip cũng có giới hạn). Một động cơ DC nhỏ có thể cần dòng khởi động hàng trăm mA đến vài A — vượt xa khả năng chịu tải của chân GPIO. Cắm động cơ thẳng vào GPIO không chỉ không đủ dòng để động cơ chạy, mà còn có thể làm cháy chân GPIO đó (thậm chí cháy cả chip) do dòng vượt giới hạn chịu đựng.
Đây là lý do bắt buộc dùng driver động cơ (L298N, TB6612...) — GPIO chỉ gửi tín hiệu điều khiển dòng nhỏ tới driver, driver mới là phần thực sự đóng/cắt dòng lớn từ nguồn riêng (pin/adapter) tới động cơ.
Kiến thức kỹ thuật
Công thức
Kết hợp định luật Ohm (U = I×R) với công thức công suất (P = U×I) cho ra 2 dạng khác của công thức công suất, dùng khi chỉ biết dòng điện hoặc chỉ biết điện áp qua một điện trở:
P = U × I = I² × R = U² / R
VD: điện trở hạn dòng LED 150Ω, dòng qua nó 0.02A
P = I² × R = 0.02² × 150 = 0.06W
→ điện trở loại 1/4W (0.25W) là đủ dư an toàn (0.06W << 0.25W)
Đây là phép tính hay bị bỏ qua khi chọn điện trở — chỉ tính đúng giá trị Ω (như ở ví dụ LED phía trên) chưa đủ, còn phải kiểm tra công suất tiêu tán có vượt quá công suất định mức của điện trở hay không.
Thông số
Dòng tối đa mỗi chân GPIO chịu được (vượt quá dễ cháy chân hoặc cả chip):
| Board/Chip | Dòng tối đa mỗi chân GPIO |
|---|---|
| Arduino Uno (ATmega328P) | ~40mA |
| STM32 (đa số dòng) | ~20-25mA |
| ESP32 | ~40mA |
Điện áp thuận (Vf) của LED theo màu — quyết định phần điện áp dư cần tính vào công thức R = U/I ở trên:
| Màu LED | Vf điển hình |
|---|---|
| Đỏ | 1.8 – 2.2V |
| Vàng / Cam | 2.0 – 2.2V |
| Xanh lá / Xanh dương | 3.0 – 3.3V |
| Trắng | 3.0 – 3.3V |
Ứng dụng thực tế
Chọn dây dẫn và đầu nối cho robot AMR luôn phải theo dòng tải thực tế, không theo cảm tính: dây cấp nguồn cho động cơ (dòng vài A khi tải) cần tiết diện lớn hơn nhiều so với dây tín hiệu cảm biến (chỉ vài mA) — dùng nhầm dây tín hiệu mảnh cho mạch công suất lớn gây nóng dây, sụt áp, thậm chí chảy lớp cách điện. Đầu nối như XT60 (chịu dòng liên tục ~30A) thường dùng cho dây pin chính của robot, trong khi đầu nối JST nhỏ hơn chỉ phù hợp cho tín hiệu cảm biến dòng thấp.
Ví dụ thực tế: ước lượng công suất tiêu thụ để chọn nguồn
Một board có: MCU (~100mA) + LiDAR (~340mA) + 4 động cơ (~500mA mỗi cái khi tải)
Tổng dòng ước lượng: 100 + 340 + 4×500 = 2440mA ≈ 2.5A (ở điện áp 12V)
Công suất: P = U × I = 12V × 2.5A = 30W
Ước lượng này giúp chọn pin/nguồn đủ dòng cấp — chọn pin chỉ đủ 1-2A cho một hệ thống cần 2.5A sẽ khiến điện áp sụt khi tải cao (động cơ khởi động), gây hiện tượng robot tự khởi động lại hoặc chạy chập chờn.
Lỗi thường gặp
- Cắm LED không qua điện trở — LED cháy gần như ngay lập tức vì dòng qua LED không được giới hạn, tăng vọt vượt xa mức chịu đựng (thường chỉ ~20mA).
- Cắm động cơ/relay trực tiếp vào GPIO — vượt dòng chịu đựng của chân, có thể cháy chân GPIO hoặc cả chip — luôn qua driver/transistor trung gian.
- Nhầm lẫn điện áp danh nghĩa của pin với điện áp thực tế — pin Li-ion "12V" thực tế dao động từ ~12.6V (đầy) xuống ~9-10V (gần cạn) tuỳ mức sạc — mạch thiết kế chỉ chịu đúng 12V danh nghĩa có thể gặp vấn đề ở điện áp thực tế cao hơn lúc pin đầy.
- Bỏ qua công suất khi chọn dây dẫn/nguồn — dây quá nhỏ so với dòng thực tế gây sụt áp, nóng dây, thậm chí cháy — luôn tính dòng thực tế (không chỉ dòng trung bình) trước khi chọn tiết diện dây và nguồn cấp.
Kết luận
Điện áp, dòng điện, công suất và định luật Ohm không phải lý thuyết vật lý xa vời — đây là công cụ tính toán trực tiếp để chọn điện trở đúng, chọn nguồn đủ tải, và biết khi nào bắt buộc cần driver trung gian thay vì cắm thẳng vào GPIO. Bài tiếp theo trong chuyên mục nói về Digital vs Analog — cách vi điều khiển "nhìn thấy" các mức điện áp này.