一种较为常规的使用NTC热敏电阻采集温度的方法

电子说

1.2w人已加入

描述

本文提供了一种较为常规的使用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));

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
luoting123 2020-11-30
0 回复 举报
pgm_read_word这个是啥呀? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分