一直都用NTC作为温度传感器来测温,采用Arduino没有现成的例子用NTC测温的,LM35D温度传感器,这款传感器能够测量0-100摄氏度的温度,并以电压的数值输出。从0度开始温度每升高1度输出电压就会提高10mv。而NTC则不然,NTC根据温度变化产生电阻阻值变化,而且是非线性的变化,这就需要用上拉电阻或下拉电阻来选择分辨率较好的区间。
#define Pot A2 //电位器引脚命名 int PotBuffer = 0; //AD读取数据缓存变量 void setup() { Serial.begin(9600); //初始化串口波特率为9600 } void loop() { PotBuffer = analogRead(Pot); //读取AD值 float temp = -0.10581*PotBuffer+94.6374; //浮点运算,根据拟合的温度与电阻曲线的斜率换算反函数 Serial.print("TEMP = "); //串口输出“Pot = ” Serial.print(temp); //串口输出temp的值 Serial.print("; AD = "); Serial.println(PotBuffer); delay(500); //延时500ms }
NTC的R25=100K,B=3950,选用50K作为上拉电阻,根据温度与阻值的真值表,求出待测范围如0-60℃的NTC实际电压值,0-5V等分1024份,求出电压值对应的AD值,以温度为X轴,AD值为Y轴做出曲线,并拟合成线性函数,求出此线性函数的反函数,最终得到【temp = -0.10581*PotBuffer+94.6374】。
Arduino 负温度系数热敏电阻(NTC)测温,布布扣,bubuko.com
原文:http://blog.csdn.net/bitezijie/article/details/25603687