Menu
CoddyTech

Nhiệt độ từ nhiệt điện trở

Thuộc phần Màn hình và cảm biến trong hành trình Arduino của Coddy. Bài học 20 trên 24.

Nhiệt điện trở là một điện trở thay đổi theo nhiệt độ. Trên mô-đun này (loại NTC), điện áp ở chân OUT giảm khi mô-đun nóng lên: analogRead() cho giá trị khoảng 512 ở 25 độ C.

Số đo không giảm theo đường thẳng, nên map() không dùng được. Phương trình beta chuyển số đo thành độ. BETA lấy từ bảng dữ liệu của linh kiện (ở đây là 3950), còn log() là hàm toán học được tích hợp sẵn trên bo mạch. Bạn không cần hiểu phần toán này: chỉ cần sao chép nguyên dòng lệnh.

const float BETA = 3950;

float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;

Giữ .0 trong 1023.0. Phép tính 1023 / reading với hai số nguyên sẽ làm mất phần thập phân, khiến kết quả sai lệch nhiều độ.

challenge icon

Thử thách

Trung bình

Mô-đun nhiệt điện trở được nối với A0. In nhiệt độ ra:

  • đổi số đọc thành độ C bằng phương trình beta
  • in ra bằng Serial.println(), hai lần mỗi giây

Nhấn Chạy, thay đổi nhiệt độ trên bo mạch, rồi nhấn Kiểm tra.

Tự làm thử

const float BETA = 3950;  // giá trị beta của nhiệt điện trở

void setup() {
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  // chuyển giá trị đọc được sang độ C rồi in ra
  delay(500);
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Màn hình và cảm biến

Tự luyện tập: Playground Arduino