Bài 13 · Vật lí · Toán
Đo điện áp một chiều 0–30 V
khi đại lượng cần đo lớn hơn thứ dụng cụ chịu được
Chân ESP32 chỉ đọc được tới 3,3 V, nhưng pin 9 V và adapter 12 V thì ở khắp nơi. Bài này giải bài toán ấy bằng hai điện trở — và đó cũng chính là cách mọi đồng hồ vạn năng trên đời đang làm.
01 Mục tiêu và yêu cầu cần đạt
Bài 12 đọc biến trở, nơi điện áp luôn nằm gọn trong 0–3,3 V. Bài này gặp tình huống thật hơn: đại lượng cần đo lớn hơn thứ dụng cụ chịu được. Đây là bài toán muôn thuở của đo lường, và lời giải rất gọn — thu nhỏ nó lại theo một tỉ lệ đã biết.
Sau bài này học sinh làm được
- Tính được điện áp ra của một cầu phân áp từ hai giá trị điện trở.
- Chọn cặp điện trở phù hợp cho một dải đo cho trước.
- Viết chương trình quy đổi số đọc ADC về mili vôn của nguồn gốc.
- So sánh kết quả với đồng hồ vạn năng và tính sai số tương đối.
- Hiệu chuẩn lại hệ số từ một phép đo chuẩn, thay vì tin vào con số lí thuyết.
- Vật lí 11 — đoạn mạch nối tiếp, hiệu điện thế trên từng điện trở, định luật Ohm.
- Toán 10 — tỉ lệ, sai số tuyệt đối và sai số tương đối.
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
Cầu chia điện áp
Hai điện trở nối tiếp giữa nguồn và đất, dòng qua chúng như nhau nên hiệu điện thế trên mỗi cái tỉ lệ với chính nó. Lấy tín hiệu ở điểm giữa:
Ura = Uvào × R2 / (R1 + R2)
Với 100 kΩ và 10 kΩ: nhỏ đi 11 lần. Đi ngược lại thì nhân 11 —
chính là HE_SO trong chương trình.
Dải đo an toàn
Chân GPIO chịu tối đa 3,3 V; nhân 11 được ~36 V. Để có biên an toàn, bài đặt trần 30 V. Cần đo cao hơn thì đổi R1, đừng đo vượt.
Tỉ lệ 10:1 thì cặp nào cũng cho hệ số 11. Nhưng điện trở nhỏ làm dòng qua cầu lớn hơn nhiều — hao pin nguồn đang đo và hun nóng điện trở. Cặp 100 kΩ/10 kΩ ở 12 V chỉ tốn ~0,1 mA, gần như không ảnh hưởng mạch đang đo.
Đây là lí do đồng hồ vạn năng tốt được quảng cáo "trở kháng vào cao": dụng cụ càng ít lấy dòng thì càng ít làm sai lệch thứ nó đang đo.
Vì sao con số 11 không bao giờ đúng hoàn toàn
Điện trở thường sai số 5%, ADC của ESP32 không tuyến tính hoàn hảo, mốc 3,3 V thực tế lệch chút ít — cộng lại lệch vài phần trăm. Cách chữa không phải mua linh kiện tốt hơn mà là hiệu chuẩn: đo một lần bằng dụng cụ chuẩn rồi tính lại hệ số cho chính mạch của mình.
03 Linh kiện
| Linh kiện | Mô tả, lưu ý khi mua | Số lượng · giá |
|---|---|---|
| ESP32 DevKit V1 | Bo 30 chân, cổng micro-USB hoặc Type-C | 1 · 90–150k |
| Điện trở 100 kΩ | Sai số 1 % thì kết quả đẹp hơn hẳn loại 5 % | 1 · 200đ |
| Điện trở 10 kΩ | Cùng loại sai số với điện trở trên | 1 · 200đ |
| Pin 9 V hoặc adapter 12 V | Nguồn một chiều để đo. Bắt buộc là nguồn rời, cách li | 1 · dùng lại |
| Đồng hồ vạn năng | Dụng cụ đo chuẩn của bài. Phòng thực hành thường đã có | mỗi nhóm 1 |
| LED 5 mm và điện trở 220 Ω | Đèn cảnh báo vượt ngưỡng | 1 · 700đ |
04 Lắp mạch và sơ đồ nối dây
| Khối | Nối dây | Nguồn |
|---|---|---|
| Cầu phân áp | Nguồn (+) → 100 kΩ → điểm giữa → 10 kΩ → GND | Điểm giữa là chỗ lấy tín hiệu |
| Chân đo | Điểm giữa → GPIO34 | Bắt buộc nhóm ADC1 |
| Đất chung | Cực âm nguồn cần đo → GND của ESP32 | Thiếu dây này thì số đọc vô nghĩa |
| LED cảnh báo | GPIO23 → điện trở 220 Ω → LED → GND | Tuỳ chọn |
Breadboard với hai điện trở nối tiếp, dây từ điểm giữa sang GPIO34, pin 9 V nối hai đầu cầu. Đồng hồ vạn năng đặt cạnh, que đo kẹp vào hai cực pin.
Khung giữ chỗ — thay bằng ảnh chụp thật khi cóSơ đồ cầu phân áp có ghi rõ U vào, U ra, R1 = 100 kΩ, R2 = 10 kΩ và công thức U ra = U vào × R2 / (R1 + R2).
Khung giữ chỗ — thay bằng ảnh chụp thật khi cóẢnh chụp cùng lúc màn hình đồng hồ vạn năng và màn hình máy tính in số đo, hai con số đặt cạnh nhau để so sánh.
Khung giữ chỗ — thay bằng ảnh chụp thật khi cóLắp và kiểm tra trước khi cắm nguồn cần đo
- Cắm 100 kΩ và 10 kΩ nối tiếp trên breadboard, ghi nhớ điểm giữa.
- Đầu tự do của 10 kΩ →
GNDcủa ESP32. - Điểm giữa →
GPIO34. - Chưa cắm nguồn cần đo. Nạp Bước 0, xác nhận số đọc gần 0.
- Bây giờ mới nối cực dương nguồn cần đo vào đầu tự do của 100 kΩ, và cực âm vào
GND.
Bài này dùng pin, ắc quy nhỏ hoặc adapter — những nguồn rời, cách li khỏi điện lưới. Không đo điện lưới bằng mạch này trong bất kì hoàn cảnh nào: cầu phân áp không cách li, nên toàn bộ bo và máy tính nối vào nó sẽ mang điện áp nguy hiểm.
Cũng đừng đo nguồn mà mình không biết rõ điện áp. Nếu chưa chắc, dùng đồng hồ vạn năng đo trước rồi mới quyết định.
Cực âm của nguồn cần đo bắt buộc phải nối với GND
của ESP32. Thiếu dây này, mạch không khép kín và số đọc sẽ trôi lung tung theo
nhiễu chứ không đứng yên ở 0 — dễ làm học sinh tưởng mạch đang chạy.
Điện trở lớn phải nằm phía nguồn, điện trở nhỏ nằm phía đất. Đảo ngược thì điểm giữa mang tới 10/11 điện áp nguồn — với pin 9 V là hơn 8 V vào thẳng chân GPIO. Trước khi cắm nguồn, hãy để một học sinh khác kiểm lại giúp.
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ỉ đo nguồn một chiều cách li, tối đa 30 V — pin, ắc quy nhỏ hoặc adapter. Không dùng để đo điện lưới.
Bước 0 — chỉ số thô, chưa cắm nguồn# ------------------------------------------------------------
# Bai 13 - Buoc 0: doc so tho, CHUA cam nguon can do
# ------------------------------------------------------------
from machine import ADC, Pin
import time
adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB) # mo rong dai do len khoang 3,3 V
while True:
print(adc.read())
time.sleep_ms(500)
Chưa cắm nguồn cần đo thì số đọc phải gần 0. Nếu nó nhảy loạn xạ quanh vài trăm,
nghĩa là chân đang thả nổi — kiểm tra lại điện trở 10 kΩ xuống GND.
Bước này vừa kiểm mạch, vừa cho học sinh thấy thế nào là "chân thả nổi".
# ------------------------------------------------------------
# Bai 13 - Doi so doc thanh mili von cua NGUON CAN DO
# ------------------------------------------------------------
from machine import ADC, Pin
import time
# ===== CẤU HÌNH =====
CHAN_DO = 34
HE_SO = 11 # (100k + 10k) / 10k
DAI_ADC_MV = 3300 # dien ap ung voi so doc 4095
NGHI = 500 # ms
# ====================
adc = ADC(Pin(CHAN_DO))
adc.atten(ADC.ATTN_11DB)
while True:
so_doc = adc.read()
# dien ap TAI CHAN GPIO
chan_mv = so_doc * DAI_ADC_MV // 4095
# dien ap cua nguon can do, truoc khi bi chia
nguon_mv = chan_mv * HE_SO
print("So doc:", so_doc, "| Chan:", chan_mv, "mV | Nguon:", nguon_mv, "mV")
time.sleep_ms(NGHI) Phép quy đổi cố ý tách làm hai dòng chứ không gộp thành một công thức. Dòng thứ nhất trả lời "chân GPIO đang thấy bao nhiêu vôn", dòng thứ hai trả lời "vậy nguồn gốc là bao nhiêu". Học sinh in ra cả hai và đối chiếu được từng chặng.
Phép chia dùng // là chia lấy phần nguyên. Ở đây chấp nhận được vì đơn
vị đã là mi-li-vôn, sai lệch do làm tròn chưa tới 1 mV — nhỏ hơn nhiều so với sai
số của chính linh kiện.
# Bien the: dung HE_SO da hieu chuan bang dong ho van nang
#
# Cach lam:
# 1. Cam mot nguon on dinh, doc so tren dong ho van nang -> U_that (mV)
# 2. Chay chuong trinh nay, doc "Chan" -> U_chan (mV)
# 3. HE_SO_THAT = U_that / U_chan
#
# Vi du: dong ho bao 12,04 V = 12040 mV, chan doc 1085 mV
# HE_SO_THAT = 12040 / 1085 = 11,10 (khong phai 11 chan)
HE_SO_THAT = 1110 # nhan voi 100 de khoi dung so thap phan
nguon_mv = chan_mv * HE_SO_THAT // 100 Đây là phần quan trọng nhất của bài. Con số 11 là lí thuyết; con số học sinh tính ra từ phép so với đồng hồ vạn năng mới là con số của chính mạch này. Nhân 100 rồi chia 100 là mẹo giữ hai chữ số thập phân mà không cần số thực.
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ử
Đối chiếu với đồng hồ vạn năng ở ba mức
Đây là phép đo trung tâm của bài. Dùng ít nhất ba nguồn khác nhau — chẳng hạn pin 9 V còn mới, pin đã dùng, và adapter 12 V.
| Nguồn | Đồng hồ (mV) | ESP32 (mV) | Sai lệch (mV) | Sai số tương đối |
|---|---|---|---|---|
| Pin 9 V mới | … | … | … | … |
| Pin 9 V đã dùng | … | … | … | … |
| Adapter 12 V | … | … | … | … |
Tính lại hệ số
Lấy dòng có số đọc ổn định nhất, tính
HE_SO_THAT = U_đồng_hồ / U_chân. Ghi kết quả rồi nạp lại chương trình
với hệ số mới và đo lại cả ba nguồn.
| Nguồn | Sai số trước hiệu chuẩn | Sai số sau hiệu chuẩn | Cải thiện |
|---|---|---|---|
| Pin 9 V mới | … | … | … |
| Pin 9 V đã dùng | … | … | … |
| Adapter 12 V | … | … | … |
Danh sách kiểm trước khi coi là xong
- Chưa cắm nguồn thì số đọc gần 0 và đứng yên.
- Số đo ESP32 và số đo đồng hồ chênh nhau dưới 5 % trước khi hiệu chuẩn.
- Sau khi hiệu chuẩn, sai số ở mức đã hiệu chuẩn nhỏ hơn hẳn.
- Học sinh tính được hệ số cho một cặp điện trở khác, chẳng hạn 47 kΩ và 10 kΩ.
- Không nhóm nào đo bất kì nguồn nào ngoài pin và adapter đã chuẩn bị sẵn.
07 Kinh nghiệm và cạm bẫy
Trước lúc cắm pin 9 V, hỏi cả lớp: "số đọc ADC sẽ khoảng bao nhiêu?". Phép tính rất ngắn — 9000 mV chia 11 được khoảng 818 mV, chia 3300 rồi nhân 4095 được khoảng 1015. Khi màn hình hiện ra một con số gần đúng như vậy, cả lớp có cảm giác đã hiểu mạch chứ không chỉ lắp mạch.
- Số đọc trôi lung tung khi chưa cắm nguồn. Chân thả nổi —
thiếu điện trở 10 kΩ xuống
GNDhoặc dây bị lỏng. - Số đo lớn hơn thực tế đều đặn khoảng 10 %. Bình thường. Đó chính là lí do phải hiệu chuẩn, đừng vội đổ cho lắp sai.
- Số đo bằng 0 dù đã cắm pin. Quên nối cực âm pin về
GND, hoặc pin hết. - Số đọc bám sát 4095. Hai điện trở cắm ngược nhau. Rút nguồn ngay và kiểm lại — đây là tình huống có thể hỏng chân.
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
Vật lí — mạch nối tiếp thôi là lí thuyết suông
Công thức chia áp thường được học thuộc rồi làm bài tập. Ở đây nó thành một dụng cụ đang chạy: đổi cặp điện trở thì dải đo đổi theo đúng công thức, và học sinh kiểm chứng được ngay bằng đồng hồ vạn năng. Rất ít chỗ trong chương trình Vật lí cho phép đóng vòng lí thuyết — thực nghiệm nhanh như vậy.
Toán — sai số tương đối có ý nghĩa thật
Bảng đối chiếu ở mục Hiệu chuẩn là bộ số liệu thật để tính sai số tương đối. Hay hơn nữa: sau khi hiệu chuẩn, học sinh thấy sai số giảm hẳn. Con số toán học vừa mô tả được chất lượng phép đo, vừa chứng minh được một can thiệp kĩ thuật có tác dụng.
Bài tập thiết kế ngược
"Cần đo tới 50 V, có sẵn điện trở 10 kΩ. Chọn điện trở còn lại bao nhiêu?" Học sinh phải đi ngược từ dải đo về hệ số rồi về giá trị điện trở, và kiểm tra biên an toàn. Đây là dạng bài thiết kế thật, không phải thay số vào công thức.
Hoạt động 1 — Xác định vấn đề. Xe mô hình của câu lạc bộ hay chết máy giữa chừng vì không ai biết pin còn bao nhiêu.
Tiêu chí sản phẩm: đo được pin 12 V với sai số dưới 3 % sau hiệu chuẩn; LED cảnh báo khi xuống dưới ngưỡng; dòng tiêu thụ của mạch đo phải không đáng kể so với xe.
Hoạt động 2 — Kiến thức nền. Cầu phân áp; dải ADC; hiệu chuẩn; trở kháng vào và ảnh hưởng của dụng cụ đo lên mạch.
Hoạt động 3 — Đề xuất và chọn phương án. Tiêu chí "dòng không đáng kể" loại thẳng các cặp điện trở nhỏ. Các nhóm phải tính dòng qua cầu và bảo vệ lựa chọn của mình bằng con số.
Hoạt động 4 — Chế tạo và thử. Lắp, hiệu chuẩn, đo pin ở ba mức nạp khác nhau.
Hoạt động 5 — Báo cáo và điều chỉnh. So bảng sai số giữa các nhóm và bàn xem vì sao chúng khác nhau dù mạch giống nhau.
- Ghi số đo theo thời gian để vẽ đường phóng điện của pin — nối sang cấp độ 9.
- Ghép màn hình của cấp độ 5 thành một vôn kế cầm tay không cần máy tính.
- Đo dòng bằng điện trở nhỏ mắc nối tiếp, rồi tính công suất tiêu thụ.
- Hướng thi Khoa học kĩ thuật: bộ giám sát pin cho hệ pin mặt trời mini của trường.