本文提供了一種較為常規的使用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));
-
熱敏電阻
+關注
關注
14文章
1166瀏覽量
101532 -
ntc熱敏電阻
+關注
關注
3文章
122瀏覽量
17735
發布評論請先 登錄
相關推薦
評論