Driver & IC

MOSFET và Relay - cho ESP32 điều khiển tải công suất lớn an toàn

8 phút đọc05/07/2026HocLapTrinhRobot
MOSFET và Relay - cho ESP32 điều khiển tải công suất lớn an toàn

GPIO chỉ cấp được 40 mA - muốn bật đèn, bơm, quạt cần MOSFET hoặc relay. Nguyên lý, chọn linh kiện logic-level, sơ đồ đấu và quy tắc an toàn điện AC. Trong bài viết này, chúng ta sẽ cùng tìm hiểu chi tiết và ứng dụng thực tế trong robot.

Bài toán: GPIO yếu, tải khỏe

Chân GPIO của ESP32 cấp tối đa ~40 mA ở 3.3V — đủ cho LED và tín hiệu. Nhưng dự án thật cần bật tắt những thứ "khỏe": bơm nước 12V 1A cho vườn tự tưới, quạt 12V, dải LED 5V 3A, van điện, đèn 220V. Nối thẳng vào GPIO: nhẹ thì không chạy, nặng thì chết chip.

Lời giải là tầng công suất trung gian: GPIO chỉ ra lệnh mức tín hiệu, một linh kiện chuyên đóng cắt gánh phần dòng lớn. Hai lựa chọn phổ biến: MOSFET (khóa bán dẫn) và relay (công tắc cơ điện). Bài này dạy chọn đúng và đấu đúng.

MOSFET vs Relay - bảng quyết định

Tiêu chíMOSFET (kênh N)Relay cơ
Bản chấtBán dẫn, không tiếp điểmNam châm điện hút tiếp điểm cơ khí
Tải phù hợpDC: động cơ, LED, bơm, quạtAC 220V và DC; tải cần cách ly hoàn toàn
PWM (băm xung)Có — điều tốc, điều sángKhông — chỉ bật/tắt (vài chục ms mỗi lần)
Tốc độ đóng cắtMicro giây5-15 ms, nghe tách tách
Tuổi thọGần vô hạn~100.000 lần đóng cắt
Cách ly điệnKhông (chung mass)Có — cuộn hút và tiếp điểm tách rời
Tiêu thụ khi giữ ON~060-80 mA nuôi cuộn hút liên tục
Giá5.000-15.000 đModule 1 kênh 15.000-25.000 đ

Quy tắc nhớ nhanh: tải DC cần PWM → MOSFET; tải AC 220V hoặc cần cách ly → relay (module có opto).

MOSFET kênh N - khóa điện tử quốc dân

Nguyên lý 30 giây

MOSFET kênh N có 3 chân: G (Gate - cổng điều khiển), D (Drain), S (Source). Cấp điện áp dương vào G so với S vượt ngưỡng — kênh D-S mở cho dòng chạy qua. Ngắt áp G — kênh đóng. G gần như không ăn dòng (điều khiển bằng điện áp) nên GPIO lái trực tiếp được.

Chọn MOSFET cho ESP32: bắt buộc "logic-level"

Thông số then chốt: Vgs(th) và điều kiện đo Rds(on). MOSFET thường (như IRF540) cần 10V vào cổng mới mở bão hòa — GPIO 3.3V chỉ he hé mở, MOSFET nóng như bếp và chết dần. Chọn loại logic-level mở hết cỡ ở 2.5-3.3V:

Dòng D-S tối đaRds(on) ở 3.3VGhi chú
AO3400 (SMD)5.7 A~30 mΩRẻ, có sẵn trên module bán sẵn
IRLZ44N47 A~25 mΩ ở 4V (chấp nhận ở 3.3V với tải vừa)Chân cắm TO-220, dễ hàn
IRLB872162 A~10 mΩChuẩn mực cho tải nặng, lái được từ 3.3V
Module MOSFET D418415 AthấpĐủ trở kéo, ốc vít bắt dây — tiện nhất cho lớp học

Chữ L trong IRL... là dấu hiệu logic-level (so với IRF... bản thường).

Sơ đồ đấu chuẩn (low-side switching)

text
 Nguồn 12V (+) ──── Tải (bơm/quạt/LED) ────┬──── D
                                           |
                    (diode flyback 1N5819  |  ngược chiều, chỉ cần cho tải cuộn dây)
                                           |
 GPIO 25 ── điện trở 220Ω ──── G           |
 GND ESP32 ─────┬────────────── S ─────────┘
                └── nối chung GND nguồn 12V
 (thêm điện trở 10kΩ từ G xuống GND để MOSFET tắt chắc khi ESP32 khởi động)

Bốn thành phần có lý do:

  • 220Ω nối tiếp G: ghìm dòng nạp xả điện dung cổng, bảo vệ GPIO
  • 10kΩ từ G xuống GND: giữ MOSFET TẮT khi ESP32 đang boot (GPIO thả nổi) — thiếu nó bơm có thể tự chạy lúc cấp nguồn
  • Diode flyback ngược chiều song song tải cuộn dây (bơm, quạt, van, motor): thoát xung áp ngược khi ngắt — bài Mạch cầu H ở mục Kiến thức giải thích kỹ hiện tượng này
  • Chung GND giữa nguồn tải và ESP32 — quên là không chạy

PWM qua MOSFET: ledcAttach(25, 5000, 8) rồi ledcWrite(25, duty) — điều tốc quạt, điều sáng dải LED mượt mà. Chi tiết LEDC trong bài PWM trên ESP32 ở mục Kiến thức.

Relay - công tắc vạn năng có cách ly

Module relay 5V phổ biến

Module 1-4 kênh gồm: relay 5V/10A, opto cách ly, transistor lái và LED báo. Chân vào: VCC (5V), GND, IN (tín hiệu). Đa số module là kích mức THẤP (active LOW): IN = LOW thì relay hút — để ý kẻo logic ngược.

Chân ra ba cọc:

  • COM: chân chung
  • NO (Normally Open): hở khi nghỉ, đóng khi kích — dùng cho hầu hết ứng dụng "bật thiết bị theo lệnh"
  • NC (Normally Closed): ngược lại — dùng khi muốn thiết bị mặc định chạy, kích để ngắt
cpp
const int RELAY = 26;   // module kích mức thấp

void setup() {
  pinMode(RELAY, OUTPUT);
  digitalWrite(RELAY, HIGH);   // HIGH = tắt (active LOW)
}

void loop() {
  digitalWrite(RELAY, LOW);    // bật bơm
  delay(5000);
  digitalWrite(RELAY, HIGH);   // tắt
  delay(10000);
}

Lưu ý nguồn: cuộn relay ăn 60-80 mA — module 4 kênh kích cùng lúc ăn hơn 300 mA, phải nuôi bằng nguồn 5V riêng, không ăn chân 3V3 của ESP32. Tín hiệu IN từ GPIO 3.3V kích được hầu hết module 5V (nhờ opto), một số module khó tính cần chuyển mức.

An toàn điện AC 220V - đọc kỹ trước khi đấu

Relay mở ra khả năng điều khiển thiết bị 220V — và cùng với nó là rủi ro thật sự:

  1. Học sinh dưới 18 tuổi không tự đấu mạch 220V — mọi thao tác phần AC phải do giáo viên/người lớn có hiểu biết thực hiện
  2. Ngắt cầu dao trước khi đấu; dùng bút thử điện xác nhận
  3. Dây AC đấu vào domino/cọc vít của relay, siết chặt, bọc kín phần cọc bằng hộp hoặc co nhiệt — không để tiếp điểm 220V trần trên bàn học
  4. Relay 10A danh định chỉ nên gánh tải ≤ 5A thực tế (đèn, quạt bàn); không đóng cắt lò sưởi, ấm siêu tốc
  5. Ưu tiên phương án an toàn hơn cho lớp học: ổ cắm WiFi thành phẩm hoặc dạy trên tải 12V DC mô phỏng — bài học logic giống hệt, rủi ro bằng không

Chọn nhanh theo dự án

Dự ánGiải phápVì sao
Vườn tự tưới (bơm 12V)MOSFET IRLZ44N/module D4184DC, có thể PWM giảm lưu lượng
Dải LED 5V trang trí robotMOSFET AO3400PWM hiệu ứng nhịp thở
Bật đèn bàn 220V khi trời tốiRelay module 1 kênh (opto)Bắt buộc cách ly AC
Quạt thông gió nhà kínhMOSFET (12V) hoặc relay (nếu quạt AC)Theo loại quạt
Khóa cửa điện từ 12VRelay hoặc MOSFET + diode flybackCuộn hút — nhớ diode
Còi báo động 12VMOSFET nhỏ (AO3400)Đơn giản, rẻ

Câu hỏi thường gặp

Transistor BJT (2N2222, TIP120) thay MOSFET được không?

Được cho tải nhỏ-vừa và vẫn phổ biến trong giáo trình cũ. Nhược so với MOSFET: ăn dòng điều khiển liên tục qua cực B, sụt áp C-E ~0.7-1V gây nóng ở dòng cao (TIP120 Darlington sụt tới 2V). Thời nay MOSFET logic-level rẻ ngang — nên học thẳng MOSFET.

Vì sao MOSFET của tôi nóng dù tải chỉ 2A?

Ba nghi phạm: không phải loại logic-level (mở nửa vời ở 3.3V — kiểm tra mã có chữ L); PWM tần số quá cao với MOSFET to (tổn hao chuyển mạch); hoặc thiếu trở kéo xuống làm cổng lơ lửng. MOSFET đúng loại, mở hết, dẫn 2A chỉ ấm nhẹ (P = I² x Rds ≈ 2² x 0.02 = 0.08 W).

Relay bán dẫn (SSR) có tốt hơn relay cơ không?

SSR không tiếng động, không mòn tiếp điểm, đóng cắt nhanh — hợp đóng cắt dày đặc và môi trường cần im lặng. Nhược: đắt hơn, nóng khi tải lớn (cần tản nhiệt), loại AC chỉ dùng cho AC. Lớp học dùng relay cơ có opto là đủ và trực quan hơn (nghe tách = biết chạy).

Một GPIO điều khiển được mấy relay/MOSFET?

Về tín hiệu: một GPIO kích song song vài cổng MOSFET thoải mái (cổng không ăn dòng tĩnh). Nhưng thiết kế tốt là mỗi tải một chân để điều khiển độc lập — ESP32 dư chân cho 8-10 kênh công suất trong dự án nhà thông minh điển hình.

Tài nguyên tải về

Tải bản PDF của bài viết để in giáo án hoặc gửi trước cho học viên.

Tải PDF
Chia sẻ bài viết