电子说
本文提供了一种较为常规的使用NTC热敏电阻采集温度的方法。
首先,采用额定温度Tn=25℃时,电阻值为Rn=10K,且热敏指数B=3950的NTC热敏电阻。使用热敏电阻采集温度的方法非常简单,如图1所示。ADC_Temp进芯片ADC6端口,使用的是AVR的8位芯片Atmega48,芯片通过检测分压电路电压来换算出热敏电阻电阻值,进而获得实际温度值。如下图所示:
图1 NTC热敏电阻温度采集电路原理图
热敏电阻的阻值和温度符合如下关系:
程序员们可以自己用以上关系采用Excel或者其它软件获得阻值和温度的关系表,也可以直接使用卖家随热敏电阻提供的表格。而事实上,我们需要的是AD值和温度的关系。由芯片资料可以了解到电压0-5V对应的AD值从0-1023。做图可以获得如下图关系曲线:
图2 温度和电阻的关系曲线 图3 温度和AD值得关系曲线
上面大致讲解了一个思路,下面就帖程序啦。
首先,要将温度和AD值表贴出来。
上表中NTC_fdb就代表i度对应的AD值。PROMEM是将表格数据定义在flash空间里。
通过采集到的AD值在表中的位置,可获得实际温度值。
使用ADC之前需要进行初始化。
对AD值进行读取的子函数如下:
下面是温度采集自子程序。
那如何把上面的子函数用起来呢。
很简单。只要使用如下语句就好:temp_value=GetNTCTemperature(adc_read(ADC_TEMP));
全部0条评论
快来发表一下你的评论吧 !