NTC作為一種負(fù)氣溫系數(shù)熱敏內(nèi)阻,其電阻隨氣溫下降而減少。借助熱敏內(nèi)阻的特點可以做氣溫傳感測量體溫應(yīng)用在單片機中。下邊簡單介紹下,在單片機中AD檢查熱敏內(nèi)阻電流值,之后轉(zhuǎn)換成內(nèi)阻值電阻的測量如何引入,求出當(dāng)前的實際氣溫。
一、熱敏內(nèi)阻公式
NTC熱敏內(nèi)阻氣溫估算公式:Rt=R*EXP(B*(1/T1-1/T2))
其中,T1和T2指的是K度,即開爾文體溫。
Rt是熱敏內(nèi)阻在T1氣溫下的電阻。
R是熱敏內(nèi)阻在T2常溫下的標(biāo)稱電阻。100K的熱敏內(nèi)阻25℃的值為100K(即R=100K)。T2=(273.15+25)
EXP是e的n次方
B值是熱敏內(nèi)阻的重要參數(shù)
通過轉(zhuǎn)換可以得到體溫T1與內(nèi)阻Rt的關(guān)系T1=1/(ln(Rt/R)/B+1/T2)(所以對應(yīng)只有一個Rt未知數(shù)即可求出T1實時體溫)
對應(yīng)的攝氏氣溫t=T1-273.15,同時+0.5的偏差矯治。
二、硬件聯(lián)接形式
單片機通過ADC檢查熱敏內(nèi)阻電流值,或則相關(guān)分壓值。通常在熱敏內(nèi)阻上串聯(lián)與Rt電阻相同的分壓內(nèi)阻。由于估算T1公式中須要曉得Rt/R的比值關(guān)系,所以在這樣的串聯(lián)分壓電路時內(nèi)阻比值即等于電流比值,不須要將測得電流值再換算成內(nèi)阻值。具體電路圖如下:
圖中的測量電流是測分壓內(nèi)阻R3的,通常來說直接測RTC更為直觀。R2因為單片機IO的高阻態(tài)等設(shè)置,R2上相當(dāng)于開路,所以測得電流可以當(dāng)作為R3上的電流。
三、程序?qū)崿F(xiàn)
ADC獲取過程就不再贅言了,相關(guān)程序可以在前一篇博客中查看,我那邊直接將獲取了相應(yīng)體溫后怎樣處理程序展示下:
(float)
float=0;
float=(-)/;
//內(nèi)阻比值相當(dāng)于電流比值,依照電路圖估算,
=1.0/((log())/3950.0+1.0/(273.15+25.0))-273.15;
//("tempis%.2frn,",);
();
}//為內(nèi)部電流值,為對應(yīng)AD測量的電流值(在那邊是電路圖中的R3電流)
補充下知識點:
物理中的公式和c語言中有小小的區(qū)別。
1、數(shù)學(xué)中
log是對數(shù)符號,右側(cè)寫真數(shù)和底數(shù)(前面是真數(shù),下邊是底數(shù))
lg是以10為底數(shù)(例lg100=2)(lg為常用對數(shù))
ln是以e為底數(shù)(lne2=2)(ln為自然對數(shù)e=2....)
2、c語言中
c語言上面只有兩個函數(shù)log和log10
其中
函數(shù)log(x)表示是以e為底的自然對數(shù),即ln(x)
函數(shù)log10(x)以10為底的對數(shù)電阻的測量如何引入,即lg(x)
以其它數(shù)為底的對數(shù)用換底公式來表示
函數(shù)如下:
(,)
(b)/log(a);