本文提供了一種較為常規(guī)的使用NTC熱敏電阻采集溫度的方法。
首先,采用額定溫度Tn=25℃時(shí),電阻值為Rn=10K,且熱敏指數(shù)B=3950的NTC熱敏電阻。使用熱敏電阻采集溫度的方法非常簡(jiǎn)單,如圖1所示。ADC_Temp進(jìn)芯片ADC6端口,使用的是AVR的8位芯片Atmega48,芯片通過檢測(cè)分壓電路電壓來換算出熱敏電阻電阻值,進(jìn)而獲得實(shí)際溫度值。如下圖所示:
圖1 NTC熱敏電阻溫度采集電路原理圖
熱敏電阻的阻值和溫度符合如下關(guān)系:
程序員們可以自己用以上關(guān)系采用Excel或者其它軟件獲得阻值和溫度的關(guān)系表,也可以直接使用賣家隨熱敏電阻提供的表格。而事實(shí)上,我們需要的是AD值和溫度的關(guān)系。由芯片資料可以了解到電壓0-5V對(duì)應(yīng)的AD值從0-1023。做圖可以獲得如下圖關(guān)系曲線:
圖2 溫度和電阻的關(guān)系曲線 圖3 溫度和AD值得關(guān)系曲線
上面大致講解了一個(gè)思路,下面就帖程序啦。
首先,要將溫度和AD值表貼出來。
上表中NTC_fdb就代表i度對(duì)應(yīng)的AD值。PROMEM是將表格數(shù)據(jù)定義在flash空間里。
通過采集到的AD值在表中的位置,可獲得實(shí)際溫度值。
使用ADC之前需要進(jìn)行初始化。
對(duì)AD值進(jìn)行讀取的子函數(shù)如下:
下面是溫度采集自子程序。
那如何把上面的子函數(shù)用起來呢。
很簡(jiǎn)單。只要使用如下語句就好:temp_value=GetNTCTemperature(adc_read(ADC_TEMP));
-
熱敏電阻
+關(guān)注
關(guān)注
14文章
1163瀏覽量
101501 -
ntc熱敏電阻
+關(guān)注
關(guān)注
3文章
122瀏覽量
17720
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論