Điện Trở Nhiệt NTC 10K
NTC (Negative Temperature Coefficient) là điện trở giảm giá trị khi nhiệt độ tăng. Loại 10kΩ@25°C rất phổ biến để đo nhiệt độ: ghép thành cầu phân áp rồi đọc bằng ADC và quy đổi qua phương trình Beta hoặc Steinhart–Hart.
Thông số kỹ thuật
| Điện trở danh định | 10 kΩ @25°C |
| Hệ số B (B25/50) | ~3950 K |
| Sai số | ±1 ~ ±5 % |
| Dải nhiệt độ | -40 ~ +125 °C |
| Hệ số nhiệt | Âm (NTC) |
| Công suất | ≤ 50 mW |
Kết nối (mạch phân áp)
Ghép NTC nối tiếp với điện trở cố định 10kΩ tạo cầu phân áp, lấy điểm giữa đưa vào chân ADC:
3V3 ── NTC 10K ──┬── R 10K ── GND
│
ADC pin (GPIO34 / A0)
| Mạch | Arduino UNO | ESP32 |
|---|---|---|
| Điểm giữa cầu | A0 | GPIO34 (ADC1) |
| Đầu trên NTC | 5V | 3V3 |
| Đầu dưới R | GND | GND |
Trên ESP32 dùng chân ADC1 (GPIO32–39) để không xung đột với Wi-Fi.
Code mẫu
#define NTC_PIN 34
const float BETA = 3950.0; // hệ số B
const float R_FIXED = 10000.0; // điện trở cố định 10K
const float R0 = 10000.0; // NTC @25°C
const float T0 = 298.15; // 25°C theo Kelvin
const float ADC_MAX = 4095.0; // ESP32 12-bit
void setup() { Serial.begin(115200); }
void loop() {
int raw = analogRead(NTC_PIN);
float r_ntc = R_FIXED * raw / (ADC_MAX - raw);
float tempK = 1.0 / (1.0 / T0 + (1.0 / BETA) * log(r_ntc / R0));
Serial.printf("Nhiệt độ: %.1f°C\n", tempK - 273.15);
delay(1000);
}