Lab.Vatli365
← Cấp độ 2 · Tín hiệu tương tự và PWM

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.

Thời lượng
1 tiết (45 phút)
Chi phí một nhóm
≈ 5 nghìn đồng (chưa tính bo)
Cấp độ
2 / 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

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.
Gắn với chương trình
  • 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.

Vì sao 100 kΩ chứ không phải 1 kΩ và 100 Ω

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ệ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
Đ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ên1 · 200đ
Pin 9 V hoặc adapter 12 VNguồn một chiều để đo. Bắt buộc là nguồn rời, cách li1 · dùng lại
Đồng hồ vạn năngDụ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ưỡng1 · 700đ
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
Cầu phân ápNguồ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 → GPIO34Bắt buộc nhóm ADC1
Đất chungCực âm nguồn cần đo → GND của ESP32Thiếu dây này thì số đọc vô nghĩa
LED cảnh báoGPIO23 → điện trở 220 Ω → LED → GNDTuỳ chọn
B13.1 Ảnh thực

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ó
B13.2 Hình vẽ

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ó
B13.3 Ảnh thự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

  1. Cắm 100 kΩ và 10 kΩ nối tiếp trên breadboard, ghi nhớ điểm giữa.
  2. Đầu tự do của 10 kΩ → GND của ESP32.
  3. Điểm giữa → GPIO34.
  4. Chưa cắm nguồn cần đo. Nạp Bước 0, xác nhận số đọc gần 0.
  5. 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.
Chỉ đo nguồn một chiều cách li

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.

Quên đất chung là lỗi làm hỏng cả buổi

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.

Cắm đúng chiều hai điện trở

Đ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".

Chương trình chính — quy đổi hai chặng
# ------------------------------------------------------------
#  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.

Biến thể — dùng hệ số đã hiệu chuẩ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ồnSai số trước hiệu chuẩnSai số sau hiệu chuẩnCả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

Cho học sinh đoán trước khi đo

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.

Bốn lỗi hay gặp
  • 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 GND hoặ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.
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

Vật lí 11Toán 10Công nghệSTEM

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.

Bài học STEM 5 hoạt động — "Bộ theo dõi pin cho xe mô hình"

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.

Hướng mở rộng
  • 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.