Lab.Vatli365
← Cấp độ 1 · Điều khiển và tín hiệu số

Bài 6 · Công nghệ

Điều khiển rơ le một và hai kênh
cho một chân 3,3 V đóng cắt được mạch mạnh hơn nó nhiều lần

Đây là bài đầu tiên ESP32 không tự làm việc mà ra lệnh cho một thứ khác làm. Chân GPIO chỉ đẩy được vài mi-li-ampe, còn rơ le đóng cắt được cả một mạch đèn 12 V — và toàn bộ bài học nằm ở chỗ hai thế giới ấy được ngăn cách ra sao.

Thời lượng
1 tiết (45 phút)
Chi phí một nhóm
≈ 25 nghìn đồng (chưa tính bo)
Cấp độ
1 / 12
Trạng thái
Đã có phần cứng, đang hoàn thiện
01

Mục tiêu và yêu cầu cần đạt

Năm bài trước, ESP32 tự làm mọi việc: nó sáng đèn, nó đếm, nó đo thời gian. Bài này nó chuyển sang vai khác — ra lệnh. Một chân GPIO chỉ chịu được vài mi-li-ampe, nhưng qua rơ le, nó đóng cắt được mạch mạnh gấp hàng nghìn lần.

Sau bài này học sinh làm được

  • Đấu đúng một module rơ le và giải thích vai trò của COM, NO, NC.
  • Nhận ra module kích mức thấp và viết mã đúng với logic đảo đó.
  • Đặt trạng thái an toàn ngay lúc khởi động, không để rơ le đóng nhầm.
  • Viết được khoá liên động để hai kênh không bao giờ cùng đóng.
  • Chỉ ra ranh giới cách li giữa mạch điều khiển và mạch tải trên chính bo mạch trước mặt.
Gắn với chương trình
  • Công nghệ 10 — Thiết kế và Công nghệ: cơ cấu chấp hành, tín hiệu điều khiển và mạch động lực.
  • Công nghệ 12 — Điện — Điện tử: rơ le điện từ, tiếp điểm thường mở và thường đóng.

Trích nguyên văn yêu cầu cần đạt từ Phụ lục Thông tư 32/2018 trước khi đưa vào kế hoạch bài dạy.

02

Lí thuyết

Rơ le là công tắc được bấm bằng nam châm điện

Dòng chạy qua cuộn dây → thành nam châm điện → hút lá thép → lá thép gạt tiếp điểm. Ngắt dòng, lò xo kéo về. Tiếng "tách" chính là lá thép đập vào tiếp điểm.

Quan trọng nhất: cuộn dây và tiếp điểm không nối điện với nhau, chỉ tác động qua từ trường. Nhờ vậy mạch 3,3 V điều khiển được một mạch hoàn toàn khác mà hai bên không dùng chung dây nào.

COM, NO và NC

  • COM — chân chung, lá thép gắn ở đây.
  • NO (thường mở) — rơ le nghỉ thì hở, đóng thì nối COM.
  • NC (thường đóng) — ngược lại hoàn toàn.

"Thường" nghĩa là lúc chưa có điện vào cuộn dây. Đèn báo hay quạt dùng NO để mất điện thì tải tắt; thiết bị mất điện phải chạy tiếp — đèn thoát hiểm chẳng hạn — dùng NC. Đây là quyết định thiết kế thật, không phải chi tiết vụn.

Vì sao module kích mức THẤP

Gần như mọi module bán sẵn đều đóng khi chân IN xuống mức 0. Lí do nằm ở con opto ghép quang: đèn LED của opto nối sẵn lên VCC, nên phải kéo đầu kia xuống đất mới sáng.

Hệ quả: lúc bo vừa cấp nguồn, các chân GPIO ở mức thấp trước khi chương trình chạy — đúng mức làm rơ le đóng. Vì vậy dòng khai báo chân bắt buộc có value=1, đặt chân lên mức cao sớm nhất có thể.

Khoá liên động

Hai kênh điều khiển hai việc loại trừ nhau — chạy tới và chạy lui, bơm vào và xả ra — thì cả hai cùng đóng có thể làm hỏng thiết bị. Khoá liên động là quy tắc: mở hết rồi mới đóng cái mới, chừa một khoảng nghỉ để tiếp điểm kịp rời nhau hẳn.

03

Linh kiện

Linh kiệnMô tả, lưu ý khi muaSố lượng · giá
ESP32 DevKit V1Bo 30 chân, cổng micro-USB hoặc Type-C1 · 90–150k
Module rơ le 2 kênh 5 VLoại có opto cách li, kích mức thấp1 · 20–30k
Đèn LED 12 V hoặc quạt 12 V nhỏTải để đóng cắt. Bắt buộc là nguồn một chiều1 · 10–20k
Nguồn một chiều 12 VAdapter rời, có sẵn ở phòng thực hành1 · dùng lại
Dây nối cái–đựcNối bo với module rơ le5 · 3k
04

Lắp mạch và sơ đồ nối dây

Đỏ · nguồn dương Đen · GND Vàng · SCL Xanh dương · SDA Trắng · tín hiệu Xanh lá · 1-Wire
KhốiNối dâyNguồn
Rơ le kênh 1GPIO23 → IN1Kích mức thấp: xuống 0 thì đóng
Rơ le kênh 2GPIO22 → IN2Cùng logic với kênh 1
Nguồn moduleVCC → 5V của ESP32 · GND → GNDGND phải nối chung, nếu không rơ le không nhận lệnh
Mạch tảiNguồn 12 V → COM · tải → NOPhần này hoàn toàn tách khỏi ESP32
B6.1 Ảnh thực

Toàn cảnh: ESP32, module rơ le 2 kênh, adapter 12 V và một đèn LED 12 V. Thấy rõ hai vùng riêng biệt — vùng điều khiển 3,3 V và vùng tải 12 V.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B6.2 Ảnh cận

Cận cảnh khối tiếp điểm với ba vít COM, NO, NC và nhãn in trên mạch, đủ nét để học sinh đối chiếu khi lắp.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B6.3 Hình vẽ

Sơ đồ hai vòng tách rời: vòng trái là ESP32 → opto → cuộn dây; vòng phải là nguồn 12 V → COM → NO → tải. Giữa hai vòng vẽ một vạch đứt ghi "cách li".

Khung giữ chỗ — thay bằng ảnh chụp thật khi có

Lắp theo đúng thứ tự này

  1. Rút hết nguồn — cả cáp USB lẫn adapter 12 V.
  2. Nối phần điều khiển: GPIO23 → IN1, GPIO22 → IN2, 5V → VCC, GND → GND.
  3. Nối phần tải: cực dương 12 V → COM kênh 1, NO kênh 1 → chân dương của đèn, chân âm của đèn → cực âm 12 V.
  4. Kiểm tra lại một lượt, đặc biệt là GND chung.
  5. Cắm USB trước, thấy đèn nguồn của module sáng thì mới cắm adapter 12 V.
Chỉ dùng nguồn một chiều điện áp thấp

Rơ le trên module ghi được cả thông số cho điện lưới, nhưng lớp học không đấu điện lưới. Toàn bộ lộ trình này chỉ làm việc với nguồn một chiều từ adapter, tối đa 12 V. Mọi ý tưởng "bật bóng đèn thật trong phòng" phải thay bằng đèn LED 12 V — hiệu ứng dạy học y hệt mà không có rủi ro nào.

Quên GND chung là lỗi phổ biến nhất

Module có đèn nguồn riêng nên vẫn sáng dù thiếu dây GND. Học sinh thấy đèn sáng thì tưởng đã xong, nhưng rơ le không bao giờ tách. Nếu chương trình chạy mà không nghe tiếng "tách" nào, hãy kiểm tra dây GND trước tiên.

05

Mã nguồn

Toàn bộ mã trong bài chạy trên MicroPython 1.28 cho ESP32. Bài này chỉ dùng tải một chiều điện áp thấp; không đấu điện lưới trong bất kì hoạt động nào của lớp.

Bước 0 — một kênh, nghe tiếng tách
# ------------------------------------------------------------
#  Bai 6 - Buoc 0: nghe tieng "tach" de biet chan nao ra kenh nao
# ------------------------------------------------------------
from machine import Pin
import time

# Module ro le pho bien nhat kich MUC THAP: dua chan xuong 0 thi ro le DONG.
relay1 = Pin(23, Pin.OUT, value=1)   # value=1 -> mo ngay tu dau

while True:
    relay1.off()     # xuong 0 -> DONG. Nghe tieng "tach"
    time.sleep(1)
    relay1.on()      # len 1 -> MO. Lai mot tieng "tach"
    time.sleep(1)

Chưa cần đấu tải. Chỉ cần nghe. Mỗi giây một tiếng "tách" nghĩa là phần điều khiển đã đúng, và học sinh nghe được bằng tai chính cái khoảnh khắc lá thép chuyển vị trí.

Hãy để học sinh tự phát hiện điều lạ: relay1.off() lại làm rơ le đóng. Câu hỏi "vì sao ngược" dẫn thẳng vào phần opto ở mục Lí thuyết.

Hai kênh có khoá liên động
# ------------------------------------------------------------
#  Bai 6 - Hai kenh co khoa lien dong: khong bao gio cung dong
# ------------------------------------------------------------
from machine import Pin
import time

# ===== CẤU HÌNH =====
CHAN_RELAY1 = 23
CHAN_RELAY2 = 22
THOI_GIAN_DONG = 2000     # ms - moi kenh dong bao lau
NGHI_GIUA = 300           # ms - khoang cach an toan giua hai lan dong
# ====================

relay1 = Pin(CHAN_RELAY1, Pin.OUT, value=1)
relay2 = Pin(CHAN_RELAY2, Pin.OUT, value=1)

def mo_het():
    relay1.on()
    relay2.on()

mo_het()                  # trang thai an toan khi vua khoi dong

while True:
    mo_het()
    time.sleep_ms(NGHI_GIUA)
    relay1.off()
    time.sleep_ms(THOI_GIAN_DONG)

    mo_het()
    time.sleep_ms(NGHI_GIUA)
    relay2.off()
    time.sleep_ms(THOI_GIAN_DONG)

Hàm mo_het() được gọi cả trước vòng lặp lẫn đầu mỗi nhánh. Đó không phải thừa: gọi trước vòng lặp là để đặt trạng thái an toàn lúc khởi động, gọi trong vòng lặp là để giữ khoá liên động. Hai mục đích khác nhau, tình cờ dùng chung một câu lệnh.

Em mô tả bằng tiếng Việt, hệ thống dựng thuật toán và chương trình, rồi nạp thẳng xuống ESP32 qua Wi-Fi.

06

Hiệu chuẩn và kiểm thử

Kiểm tra trạng thái an toàn

Đây là phép thử quan trọng nhất của bài, và cũng là phép thử hay bị bỏ qua nhất.

  1. Nạp chương trình, để chạy bình thường.
  2. Rút cáp USB rồi cắm lại. Quan sát đèn tải ngay giây đầu tiên.
  3. Nhấn nút EN trên bo để khởi động lại. Quan sát lần nữa.
  4. Lặp lại năm lần và ghi số lần đèn loé lên ngoài ý muốn.
LầnCách khởi động lạiĐèn có loé khôngƯớc lượng thời gian loé
1Cắm USB……
2Nhấn EN……
3Cắm USB……
4Nhấn EN……
5Cắm USB……

Thử nghịch để thấy vì sao cần value=1

Xoá , value=1 khỏi hai dòng khai báo rồi nạp lại và khởi động lại vài lần. Rơ le sẽ đóng một nhịp ngắn trước khi chương trình kịp mở nó. Sau khi cả lớp thấy rõ, trả lại value=1. Đây là cách hiệu quả nhất để dạy khái niệm trạng thái an toàn: cho học sinh thấy hậu quả trước, rồi mới nói tên khái niệm.

Danh sách kiểm trước khi coi là xong

  • Nghe rõ tiếng tách ở cả hai kênh.
  • Đèn tải sáng đúng kênh đang đóng, không sáng mờ hay chớp.
  • Khởi động lại năm lần, không lần nào đèn loé ngoài ý muốn.
  • Không có thời điểm nào hai kênh cùng đóng — kiểm bằng cách nghe hai tiếng tách luôn cách nhau.
  • Học sinh chỉ được đúng ranh giới cách li trên module.
07

Kinh nghiệm và cạm bẫy

Tiếng tách là công cụ dạy học tốt nhất của bài này

Cả lớp nghe được cùng lúc, không cần nhìn màn hình. Khi sửa thời gian trong khu thực hành AI rồi nạp lại, nhịp tách đổi theo — và học sinh nghe thấy chương trình của mình chạy trước cả khi kịp nhìn.

Bốn lỗi hay gặp
  • Rơ le tách liên tục không theo nhịp. Nguồn 5 V không đủ. Cuộn dây rút khá nhiều dòng lúc hút; nếu cấp qua cổng USB của máy tính yếu thì bo bị sụt áp và khởi động lại liên tục.
  • Không nghe tiếng nào. Thiếu dây GND chung, hoặc module là loại kích mức cao — thử đảo on() và off().
  • Đèn tải sáng mờ. Đấu nhầm vào NC thay vì NO, hoặc quên nối cực âm 12 V về lại nguồn.
  • Đèn loé lúc khởi động. Thiếu value=1.
Chỗ này cần một chuyện thật của chính thầy cô

Các hộp trên viết từ quá trình dựng và chạy thử bài. Sau buổi dạy đầu tiên, xin thầy cô thay bằng tình huống đã thực sự xảy ra ở lớp mình.

08

Ứng dụng trong dạy học

Công nghệ 10Công nghệ 12STEM

Công nghệ — tín hiệu điều khiển và mạch động lực

Bài này là ví dụ gọn nhất cho một cặp khái niệm nền của ngành điều khiển: mạch điều khiển làm việc ở mức năng lượng rất thấp, mạch động lực làm việc ở mức cao, và giữa chúng luôn có một khâu cách li. Học sinh cầm trên tay đúng ba phần đó.

Vì sao ngày nay người ta hay thay rơ le bằng linh kiện bán dẫn

Rơ le có tiếp điểm cơ khí nên mòn dần, tách chậm và kêu. Rơ le bán dẫn không có bộ phận chuyển động, đóng cắt nhanh và im lặng, nhưng đắt hơn và toả nhiệt. Đây là một bài tập so sánh phương án rất thật: hãy để học sinh chọn cho một tình huống cụ thể và bảo vệ lựa chọn của mình.

Bài học STEM 5 hoạt động — "Hẹn giờ tắt đèn bàn học"

Hoạt động 1 — Xác định vấn đề. Đèn bàn hay bị quên tắt. Cần một bộ hẹn giờ tự ngắt sau một khoảng đặt trước.

Tiêu chí sản phẩm: chỉ dùng đèn 12 V một chiều; mất điện rồi có điện lại thì đèn phải tắt chứ không tự sáng; sai lệch thời gian dưới 5 % trong 10 phút.

Hoạt động 2 — Kiến thức nền. Rơ le và tiếp điểm; logic kích mức thấp; trạng thái an toàn khi khởi động; đếm thời gian đã học ở Bài 5.

Hoạt động 3 — Đề xuất và chọn phương án. Tiêu chí "có điện lại thì phải tắt" ép các nhóm dùng NO chứ không phải NC, và ép phải có value=1. Đây là chỗ tiêu chí thiết kế quyết định kĩ thuật.

Hoạt động 4 — Chế tạo và thử. Lắp mạch, lập trình, thử ngắt nguồn đột ngột ít nhất năm lần.

Hoạt động 5 — Báo cáo và điều chỉnh. Mỗi nhóm trình bày bảng kiểm trạng thái an toàn. Nhóm nào có lần đèn loé phải giải thích nguyên nhân.

Hướng mở rộng
  • Ghép nút nhấn của Bài 2 để bật tắt bằng tay, có nhớ trạng thái.
  • Ghép cảm biến chuyển động của Bài 17 thành đèn hành lang tự động.
  • Ghép webserver của Bài 44 để bật tắt từ điện thoại trong cùng mạng.
  • Hướng thi Khoa học kĩ thuật: tủ ấp trứng mini có khoá liên động giữa sưởi và quạt.