Cảm biến nhiệt độ: cấu tạo, nguyên lý và cách chế tạo cặp nhiệt điện, RTD, NTC, IC bán dẫn
Cấu tạo, nguyên lý và cách chế tạo năm họ cảm biến nhiệt độ: cặp nhiệt điện, Pt100, NTC, IC bán dẫn, hồng ngoại; cách chọn theo ứng dụng và ví dụ đọc NTC 10 kΩ bằng ESP32.
Nhiệt độ là đại lượng được đo nhiều nhất trong kỹ thuật: từ tủ lạnh, bình nóng lạnh, máy in 3D đến lò nung và dây chuyền sản xuất. Không có một cảm biến nhiệt độ "tốt nhất"; mỗi loại dựa trên một hiện tượng vật lý riêng nên phù hợp với một dải đo và một mức giá riêng. Bài viết này giải thích cấu tạo, nguyên lý hoạt động và cách chế tạo năm họ cảm biến nhiệt độ thường gặp: cặp nhiệt điện, nhiệt điện trở kim loại (RTD, Pt100), nhiệt điện trở bán dẫn (NTC, PTC), cảm biến IC bán dẫn và nhiệt kế hồng ngoại. Phần cuối có ví dụ đọc NTC 10 kΩ bằng ESP32, chỉ cần thêm một điện trở.
1. Năm họ cảm biến nhiệt độ

| Loại | Đại lượng thay đổi | Ưu điểm | Hạn chế |
|---|---|---|---|
| Cặp nhiệt điện | Sức điện động vài chục µV mỗi °C | Dải đo rất rộng, tới trên 1000 °C; đầu dò nhỏ, bền, rẻ | Tín hiệu rất nhỏ; phải bù mối lạnh; độ chính xác thường ±1 đến ±2,5 °C |
| RTD (Pt100, Pt1000) | Điện trở bạch kim, tăng khoảng 0,385 %/°C | Chính xác, ổn định lâu dài, gần tuyến tính | Đắt hơn; cần nguồn dòng và cách nối 3 hoặc 4 dây |
| NTC, PTC | Điện trở gốm oxit, đổi vài %/°C | Rất nhạy, rẻ, mạch đọc đơn giản | Đặc tính cong; dải đo hẹp (thường −50 đến 150 °C) |
| IC bán dẫn | Điện áp tiếp giáp p-n của tranzito | Ra số hoặc ra điện áp tuyến tính, đã hiệu chuẩn sẵn | Dải đo hẹp (−55 đến 150 °C); vỏ lớn, phản ứng chậm hơn |
| Hồng ngoại | Năng lượng bức xạ nhiệt | Không tiếp xúc; đo vật đang chuyển động, vật rất nóng | Phụ thuộc hệ số phát xạ bề mặt; chỉ đo được bề mặt |
2. Cặp nhiệt điện (thermocouple)
Nguyên lý: hiệu ứng Seebeck
Hai dây kim loại khác loại được hàn với nhau ở một đầu. Khi đầu hàn (mối nóng) và hai đầu còn lại (mối lạnh) ở hai nhiệt độ khác nhau, giữa hai đầu tự do xuất hiện một điện áp nhỏ. Điện áp này phụ thuộc hiệu nhiệt độ giữa hai mối và cặp kim loại được chọn. Cặp nhiệt điện không cần nguồn nuôi: nó tự phát ra điện áp.
Với cặp nhiệt điện loại K (Chromel/Alumel), độ nhạy khoảng 41 µV/°C quanh nhiệt độ phòng: mối nóng 100 °C, mối lạnh 0 °C cho 4,096 mV. Tín hiệu nhỏ cỡ đó nên phải khuếch đại bằng mạch chuyên dụng, không đưa thẳng vào ADC của vi điều khiển.

Cấu tạo đầu dò

- Mối nóng: hai dây được hàn chảy vào nhau thành một hạt nhỏ. Hạt càng nhỏ, cảm biến phản ứng càng nhanh.
- Cách điện và vỏ: loại dây trần dùng vỏ bọc sợi thủy tinh hoặc PTFE. Loại công nghiệp dùng cáp bọc khoáng: hai dây nằm trong ống thép không gỉ hoặc Inconel, lèn chặt bằng bột magie oxit (MgO) cách điện và chịu nhiệt.
- Kiểu mối nóng: hàn dính vào đáy vỏ (phản ứng nhanh, nhưng nối đất), cách ly với vỏ (chống nhiễu tốt hơn, chậm hơn một chút), hoặc để hở ngoài vỏ (nhanh nhất, dễ hỏng).
- Dây bù: từ đầu dò tới bộ đo phải dùng dây cùng loại hoặc dây bù đúng loại. Nối bằng dây đồng thường sẽ tạo thêm một cặp nhiệt điện ở chỗ nối và làm sai kết quả.
Bù mối lạnh
Bộ đo chỉ thấy hiệu điện áp giữa mối nóng và mối lạnh. Ở ví dụ trong hình, mối nóng 100 °C và cầu đấu 25 °C cho 4,096 − 1,000 = 3,096 mV. Nếu đem 3,096 mV tra bảng sẽ ra khoảng 76 °C, sai gần 25 °C. Vì thế bộ đo đặt một cảm biến nhiệt độ khác (thường là IC bán dẫn hoặc NTC) ngay tại cầu đấu, đổi nhiệt độ cầu đấu ra điện áp tương đương rồi cộng vào. Các IC đọc cặp nhiệt điện như MAX31855 làm sẵn cả khuếch đại, bù mối lạnh và chuyển đổi số.
Các loại cặp nhiệt điện thường gặp
| Loại | Cặp kim loại (dương / âm) | Dải đo thường dùng | Độ nhạy gần 25 °C |
|---|---|---|---|
| K | Niken-crôm / niken-nhôm | −200 đến 1260 °C | khoảng 41 µV/°C |
| J | Sắt / đồng-niken | 0 đến 750 °C | khoảng 52 µV/°C |
| T | Đồng / đồng-niken | −200 đến 350 °C | khoảng 41 µV/°C |
| N | Niken-crôm-silic / niken-silic | −200 đến 1300 °C | khoảng 27 µV/°C |
| R, S | Bạch kim-rôđi / bạch kim | 0 đến 1600 °C | khoảng 6 µV/°C |
Chế tạo
Dây cặp nhiệt điện được kéo từ hợp kim có thành phần kiểm soát chặt, vì chỉ lệch thành phần một chút là đường đặc tính đã đổi. Với cáp bọc khoáng, nhà sản xuất đặt hai thanh dây vào ống kim loại lớn, đổ bột MgO, rồi kéo và cán nhỏ dần qua nhiều lần, ủ mềm giữa các lần kéo, cho tới đường kính chỉ vài milimét. Sau đó cắt đoạn, tách dây, hàn mối nóng bằng hồ quang hoặc laser, hàn kín đầu vỏ, rồi so sánh với cặp nhiệt chuẩn trong lò hiệu chuẩn.
3. Nhiệt điện trở kim loại RTD (Pt100, Pt1000)
Điện trở của kim loại tăng khi nhiệt độ tăng. Bạch kim (platin) được chọn vì bền hóa học, không bị oxy hóa và có đặc tính lặp lại rất tốt. Pt100 là phần tử bạch kim có điện trở đúng 100 Ω ở 0 °C; Pt1000 có 1000 Ω. Theo tiêu chuẩn IEC 60751, điện trở theo nhiệt độ (từ 0 °C trở lên) là:
R(t) = R0 × (1 + A·t + B·t²), với A = 3,9083 × 10⁻³ /°C và B = −5,775 × 10⁻⁷ /°C².
Ở 100 °C, Pt100 có 138,51 Ω, tức trung bình tăng 0,385 Ω mỗi °C. Tiêu chuẩn chia cấp chính xác: cấp B sai số ±(0,3 + 0,005·|t|) °C, tức ±0,8 °C ở 100 °C; cấp A sai số ±(0,15 + 0,002·|t|) °C, tức ±0,35 °C ở 100 °C.

Hai kiểu cấu tạo
- Dây quấn: sợi dây bạch kim rất mảnh được quấn thành lò xo và luồn trong lỗ của ống gốm, phần trống lèn bột gốm. Dây được co giãn tự do nên ổn định, chính xác; dùng cho nhiệt kế chuẩn và nhiệt độ cao.
- Màng mỏng: lớp bạch kim dày khoảng 1 µm phủ trên tấm gốm nhỏ. Rẻ, nhỏ, chịu rung tốt; là loại phổ biến nhất trong đầu dò công nghiệp hiện nay.
Chế tạo phần tử màng mỏng và cách nối dây

- Tấm đế gốm nhôm oxit được mài phẳng và làm sạch.
- Phủ lớp bạch kim bằng phún xạ (bắn ion vào bia bạch kim để nguyên tử bám lên đế) trong buồng chân không.
- Quang khắc: phủ chất cản quang, chiếu qua mặt nạ rồi ăn mòn, để lại đường bạch kim uốn khúc dài trên diện tích nhỏ.
- Ủ nhiệt để ổn định lớp kim loại, sau đó đo từng phần tử và dùng tia laser cắt bớt đường dẫn cho tới đúng 100,00 Ω.
- Phủ lớp thủy tinh bảo vệ, hàn dây ra, cắt rời từng phần tử, rồi phân loại theo cấp chính xác.
Pt100 chỉ đổi 0,385 Ω mỗi °C nên điện trở dây nối không thể bỏ qua. Nối 2 dây, mỗi dây 0,5 Ω, làm kết quả cao thêm khoảng 2,6 °C. Nối 3 dây cho phép bộ đo trừ điện trở dây (khi ba dây giống nhau). Nối 4 dây cho dòng điện đi một cặp, điện áp đo trên cặp kia, nên điện trở dây không ảnh hưởng. Dòng đo thường chỉ khoảng 1 mA để phần tử không tự nóng lên.
4. Nhiệt điện trở bán dẫn NTC và PTC
NTC (hệ số nhiệt âm) là gốm bán dẫn làm từ hỗn hợp oxit kim loại như mangan, niken, coban. Khi nóng lên, nhiều hạt dẫn điện được giải phóng hơn nên điện trở giảm, khoảng 4 % mỗi °C quanh nhiệt độ phòng, nhạy gấp khoảng mười lần Pt100. Đổi lại, đường đặc tính cong theo hàm mũ. Trong dải hẹp, quan hệ này được mô tả bằng phương trình Beta:
1/T = 1/T25 + ln(R/R25) / B, với T tính bằng kelvin, R25 là điện trở ở 25 °C và B là hệ số ghi trong thông số (ví dụ 3435 K, 3950 K).

Hệ số B quan trọng không kém R25. Nếu dùng công thức B = 3950 K cho một NTC thực ra có B = 3435 K, kết quả ở 0 °C sẽ thành khoảng 3 °C và ở 50 °C thành khoảng 46,5 °C. Đồng hồ nhiệt độ mini của shop dùng NTC 10 kΩ, B = 3435 K, đúng với kiểu tính này.
Chế tạo NTC
- Nghiền và trộn bột oxit kim loại theo tỉ lệ quyết định R25 và B, thêm chất kết dính.
- Ép thành viên tròn, hoặc cán thành tấm mỏng rồi cắt thành chip.
- Thiêu kết ở khoảng 1100 đến 1300 °C để bột thành khối gốm đặc.
- In và nung lớp điện cực bạc ở hai mặt, đo điện trở, mài bớt nếu cần đạt sai số 1 %.
- Hàn chân, nhúng phủ epoxy (dạng hạt, dùng tới khoảng 125 °C) hoặc bọc thủy tinh (dùng tới 250 °C hoặc hơn), rồi đóng vào đầu dò kim loại nếu cần chống nước.

PTC (hệ số nhiệt dương) có hai loại. PTC gốm bari titanat có điện trở tăng vọt khi vượt một nhiệt độ ngưỡng, dùng làm cầu chì tự phục hồi hoặc bộ sưởi tự giới hạn nhiệt. PTC silic tăng điện trở gần tuyến tính, dùng làm cảm biến trong ô tô và động cơ.
5. Cảm biến nhiệt độ IC bán dẫn
Điện áp trên tiếp giáp base-emitter của tranzito silic giảm khoảng 2 mV mỗi °C. Điện áp này lệch nhau giữa các con chip, nên IC cảm biến dùng hai tranzito chạy ở mật độ dòng khác nhau: hiệu điện áp của chúng tỉ lệ thuận đúng với nhiệt độ tuyệt đối, theo công thức ΔU = (k·T/q) × ln(N), trong đó k là hằng số Boltzmann, q là điện tích electron và N là tỉ số mật độ dòng. Chip khuếch đại hiệu này thành điện áp ra tuyến tính (ví dụ 10 mV/°C) hoặc đưa vào bộ chuyển đổi số ngay trên chip.
IC loại này được sản xuất trên dây chuyền bán dẫn CMOS như mọi con chip khác, rồi hiệu chuẩn từng chip ở nhà máy bằng cách ghi hệ số vào bộ nhớ trong. Vì vậy giá rẻ và không cần người dùng hiệu chuẩn. DS18B20 là ví dụ quen thuộc: đo −55 đến 125 °C, sai số ±0,5 °C trong khoảng −10 đến 85 °C, giao tiếp 1-Wire. Bài 1-Wire là gì và cách đọc DS18B20 bằng ESP32 hướng dẫn chi tiết cách đọc cảm biến này.
6. Nhiệt kế hồng ngoại
Mọi vật trên 0 K đều phát bức xạ nhiệt; công suất bức xạ tăng theo lũy thừa bậc bốn của nhiệt độ tuyệt đối (định luật Stefan–Boltzmann). Nhiệt kế hồng ngoại dùng thấu kính gom bức xạ trong dải bước sóng khoảng 8 đến 14 µm lên một thermopile: hàng chục cặp nhiệt điện mắc nối tiếp, chế tạo trên một màng silic rất mỏng có lớp hấp thụ màu đen. Màng chỉ nóng lên rất ít, nhưng các cặp nhiệt cộng dồn điện áp lại, rồi bộ đo bù nhiệt độ của chính cảm biến để tính ra nhiệt độ bề mặt vật.
- Hệ số phát xạ: da người, nhựa, sơn, gỗ phát xạ khoảng 0,95 nên đo dễ. Kim loại sáng bóng chỉ khoảng 0,1 đến 0,3, nên nhiệt kế đọc thấp hơn thực tế nhiều; dán băng keo đen hoặc sơn lên chỗ đo để khắc phục.
- Tỉ lệ khoảng cách và điểm đo: tỉ lệ 12:1 nghĩa là đứng cách 120 cm thì nhiệt kế đo trung bình một vùng đường kính 10 cm. Vật nhỏ hơn vùng đo sẽ bị lẫn nhiệt độ nền.
7. Chọn cảm biến theo ứng dụng
| Ứng dụng | Nên chọn | Lý do |
|---|---|---|
| Tủ lạnh, phòng, bể cá, pin sạc | NTC hoặc IC số (DS18B20) | Rẻ, đủ chính xác trong khoảng −40 đến 100 °C |
| Bàn nhiệt máy in 3D, máy pha cà phê | NTC bọc thủy tinh hoặc Pt100 | Chịu được 150 đến 300 °C |
| Lò nung, lò sấy, khí thải động cơ | Cặp nhiệt điện K, N hoặc R, S | Chỉ cặp nhiệt điện chịu được trên 600 °C |
| Dược phẩm, thực phẩm, phòng thí nghiệm | Pt100 cấp A, nối 4 dây | Chính xác và ổn định, dễ hiệu chuẩn lại |
| Vật đang quay, vật rất nóng, đo nhanh trên người | Hồng ngoại | Không cần chạm vào vật |
8. Thực hành: đọc NTC 10 kΩ bằng ESP32
NTC là loại dễ thử nhất: chỉ cần một điện trở cố định để tạo cầu phân áp. Điện áp ở điểm giữa đổi theo điện trở của NTC; ESP32 đo điện áp này, tính ngược ra điện trở rồi ra nhiệt độ.
Linh kiện
- ESP32 DevKit V1 30 chân (hoặc bản dùng chip CH340).
- Một NTC 10 kΩ (ghi rõ hệ số B, thường 3950 K hoặc 3435 K), loại hạt epoxy hoặc đầu dò chống nước.
- Một điện trở 10 kΩ sai số 1 %, một tụ 100 nF (không bắt buộc).
- Breadboard 830 lỗ và dây cắm test board.
Sơ đồ nối

| Linh kiện | Nối |
|---|---|
| Điện trở 10 kΩ | Một đầu vào 3V3, đầu kia vào D34 |
| NTC 10 kΩ | Một chân vào D34, chân kia vào GND |
| Tụ 100 nF (tùy chọn) | Giữa D34 và GND, đặt sát ESP32 để lọc nhiễu khi dây NTC dài |
Chương trình
Chương trình chỉ dùng hàm có sẵn trong gói esp32 cho Arduino IDE, không cần cài thêm thư viện. Sửa R25 và HE_SO_BETA theo NTC đang dùng; đo chân 3V3 bằng đồng hồ vạn năng rồi sửa DIEN_AP_NGUON_MV nếu khác 3300 mV.
/*
PYWORLD.VN - Cảm biến nhiệt độ NTC 10 kΩ với ESP32: cầu phân áp 10 kΩ + NTC, đọc bằng ADC
Điện trở cố định 10 kΩ nối 3V3 xuống D34, NTC nối D34 xuống GND; nhiệt độ tính theo phương trình Beta
Báo hở mạch hoặc chập khi điện áp tại D34 nằm sát 3,3 V hoặc sát 0 V
*/
#include <math.h>
#define CHAN_NTC 34
const float DIEN_AP_NGUON_MV = 3300.0; // Điện áp chân 3V3; đo bằng đồng hồ và sửa lại cho đúng mạch của bạn
const float DIEN_TRO_CO_DINH = 10000.0; // Ôm, điện trở nối 3V3 xuống D34 (nên dùng loại sai số 1 %)
const float R25 = 10000.0; // Điện trở của NTC ở 25 °C, ghi trên linh kiện (10 kΩ)
const float HE_SO_BETA = 3950.0; // Hệ số B của NTC (K), ghi trong thông số: 3950, 3435...
const float T25_KELVIN = 298.15; // 25 °C đổi ra kelvin
const int SO_MAU = 32;
// Lấy trung bình nhiều mẫu ADC (đã hiệu chỉnh ra mV) để giảm nhiễu
float docDienApMv() {
uint32_t tong = 0;
for (int i = 0; i < SO_MAU; i++) {
tong += analogReadMilliVolts(CHAN_NTC);
delayMicroseconds(400);
}
return (float)tong / SO_MAU;
}
void setup() {
Serial.begin(115200);
analogSetPinAttenuation(CHAN_NTC, ADC_11db);
Serial.printf("\nNTC R25 = %.0f ohm, B = %.0f K, dien tro co dinh %.0f ohm\n", R25, HE_SO_BETA, DIEN_TRO_CO_DINH);
}
void loop() {
float dienAp = docDienApMv();
if (dienAp > DIEN_AP_NGUON_MV - 60) {
Serial.printf("ADC %.0f mV: NTC HO MACH (dut day)\n", dienAp);
} else if (dienAp < 40) {
Serial.printf("ADC %.0f mV: NTC BI CHAP\n", dienAp);
} else {
// Cầu phân áp: U = Vcc * R_ntc / (R_co_dinh + R_ntc) => R_ntc = R_co_dinh * U / (Vcc - U)
float rNtc = DIEN_TRO_CO_DINH * dienAp / (DIEN_AP_NGUON_MV - dienAp);
// Phương trình Beta: 1/T = 1/T25 + ln(R/R25) / B, với T tính bằng kelvin
float tKelvin = 1.0f / (1.0f / T25_KELVIN + logf(rNtc / R25) / HE_SO_BETA);
float tC = tKelvin - 273.15f;
Serial.printf("ADC %.0f mV | R_NTC %.0f ohm | Nhiet do %.1f C\n", dienAp, rNtc, tC);
}
delay(1000);
}
Giải thích
analogReadMilliVolts()trả về điện áp đã hiệu chỉnh theo dữ liệu ghi trong chip, chính xác hơn tự đổi từ giá trị thô 0 đến 4095. Lấy trung bình 32 mẫu để giảm nhiễu.- Từ điện áp U tính điện trở NTC: R = 10 kΩ × U / (3300 − U).
- Phương trình Beta đổi điện trở ra kelvin, trừ 273,15 ra °C.
- Điện áp sát 3,3 V nghĩa là NTC hở mạch (điện trở vô cùng lớn); sát 0 V nghĩa là NTC bị chập.
Kết quả mong đợi

Quanh 25 °C, điện áp tại D34 đổi khoảng 37 mV mỗi °C, nên nhiễu ADC vài mV chỉ còn vài phần trăm độ sau khi lấy trung bình. Sai số tuyệt đối chủ yếu đến từ sai số của NTC, điện trở 10 kΩ và ADC; muốn chính xác hơn, so với một nhiệt kế tốt ở hai điểm (nước đá đang tan và nước ấm) rồi chỉnh R25 hoặc B, hoặc đọc cầu phân áp bằng module ADS1115 16 bit. Dòng qua NTC khoảng 0,17 mA, công suất chỉ khoảng 0,27 mW nên NTC gần như không tự nóng.
9. Xử lý lỗi thường gặp
| Hiện tượng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| NTC báo nhiệt độ lệch đều vài độ | Sai hệ số B hoặc R25; điện áp 3V3 khác 3300 mV | Kiểm tra thông số NTC, đo lại chân 3V3, hiệu chỉnh ở hai điểm |
| Nhiệt độ nhảy lung tung | Dây NTC dài, nhiễu từ Wi-Fi hay động cơ | Thêm tụ 100 nF sát chân ADC, dùng dây xoắn đôi, tăng số mẫu trung bình |
| Luôn báo hở mạch hoặc đọc 0 | Dùng chân ADC2 trong khi bật Wi-Fi; nối sai chân | Dùng chân ADC1 (D32 đến D39); kiểm tra lại dây |
| Cặp nhiệt điện giảm khi nung nóng | Đấu ngược cực | Đổi hai dây; với loại K theo IEC, dây xanh lá là dương |
| Cặp nhiệt điện sai khi nối dài | Nối bằng dây đồng thường; cầu đấu bị nóng không đều | Dùng dây bù đúng loại; đặt cảm biến bù sát cầu đấu |
| Pt100 đọc cao hơn thực tế | Nối 2 dây, điện trở dây cộng vào | Chuyển sang nối 3 hoặc 4 dây, hoặc trừ điện trở dây đã đo |
| Nhiệt kế hồng ngoại đọc thấp trên bề mặt kim loại | Hệ số phát xạ thấp | Dán băng keo đen hoặc chỉnh hệ số phát xạ trên máy |
10. Xem thêm
- 1-Wire là gì: khe thời gian, mã ROM và cách đọc DS18B20 bằng ESP32.
- Đọc ADC trên ESP32 và đo điện áp bằng cầu phân áp.
- Vòng dòng 4-20 mA và cách đọc cảm biến công nghiệp bằng ESP32, dùng khi đầu dò Pt100 có bộ chuyển đổi 4-20 mA.
- Đồng hồ đo nhiệt độ điện tử mini dùng NTC 10 kΩ và đồng hồ đo nhiệt độ và độ ẩm mini.
- Bài tiếp theo trong loạt: cảm biến áp suất.
Xem thêm