Tôi đang cố gắng sử dụng hai cảm biến nhiệt độ TMP36 (từ bộ công cụ của Sparkfun Inventor) và KEYES LM35.
Trong cảm biến đọc TMP36 và tôi chuyển đổi kết quả thành Celsius bằng mã sau:
// TMP36 input sensor -> degrees Celsius calculation
TM36reading = analogRead(TM36sensor);
TM36voltage = (TM36reading/1024.0)*5.0;
//converting from 10mv per degree with 500 mV offset
// (TMP36 voltage - 500mV) times 100)
TM36degreesC = (TM36voltage - 0.5) * 100;
Trong cảm biến đọc LM35 và tôi chuyển đổi kết quả thành Celsius bằng mã sau:
// LM35 input sensor -> degrees Celsius calculation
LM35reading=analogRead(LM35sensor); // reads the LM35 output
LM35voltage = (LM35reading/1024.0)*5.0;
LM35degreesC=LM35voltage*100.0;
Tôi cũng đã kết nối màn hình LCD để theo dõi trực quan các giá trị của hai cảm biến này. Đây là mã đầy đủ của tôi . Tôi cũng sử dụng một bản ghi nối tiếp. Dưới đây là một mẫu từ nhật ký nối tiếp này (như bạn có thể thấy có sự chênh lệch / bù giữa 0,5 đến 0,9 độ C).
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 16.89, LM35: 16.11 diff -> 0.78
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.87, LM35: 16.60 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 17.09 diff -> 0.20
TM36: 17.38, LM35: 17.09 diff -> 0.29
mean difference between sensors: 0.48
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 16.41, LM35: 17.58 diff -> 1.17
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 17.09 diff -> 0.20
mean difference between sensors: 0.71
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 17.09 diff -> 0.29
TM36: 16.89, LM35: 16.11 diff -> 0.78
mean difference between sensors: 0.93
Tôi cấp nguồn cho Arduino từ máy tính bằng cáp USB. Khi máy tính BẬT, chúng ta có phần bù mà tôi đã trình bày ở trên. Khi máy tính tắt (sau khi tắt máy tính), ngay lập tức cảm biến của TMP36 rơi vào khoảng 1 độ C .. Và sau đó cả hai cảm biến đều có nhiệt độ tương tự nhau.
Tại sao có sự chênh lệch nhiệt độ giữa các cảm biến TMP36 và LM35? Làm thế nào chúng ta có thể "tinh chỉnh" các cảm biến này để theo dõi nhiệt độ thực?