2012-12-26 33 views
1

我正在使用Arduino DueTMP36(用于读取温度)。这是我的公式转换读数°F:Arduino的稍微温度下降

tempReading = analogRead(tempPin); 
voltage = tempReading * 5.0; // Saves the voltage 
voltage /= 1024.0; 
tempC = (voltage - 0.5) * 100 ; //Converts to Celsius 
tempF = (tempC * 9.0/5.0) + 32; //Converts to Fahrenheit 

在串行,我的Arduino是从90-100  °F打印出的温度,以及我的房子被设定为大约70  °F。这里的问题是什么?

+0

传感器不是很精确。不要指望它是如此。另外,电源电压可能不完全是5V。 – 2012-12-26 21:07:07

+0

尝试在冰水中校准0C点(0.5)(将传感器包裹在防水塑料中),测量第一个40C的实际斜率(10 mV/C,* 100)也有帮助。浴温度计和一个小锅炉应该就足够了。 –

+0

感谢虐待测试,但我已经用我的Arduino Uno相当准确地使用了这个 – mail929

回答

0

http://arduino.cc/en/Main/ArduinoBoardDue

“与其他的Arduino板,Arduino的由于板在3.3V运行的I/O引脚可以容忍的最大电压为3.3V提供更高的电压,如5V到I。/O引脚可能会损坏电路板。“

很可能你应该乘以tempreading不是5,而是3.3。