一:硬件設計
這裏使用的是MF52-103熱敏電阻,其中B爲3950,它與10K電阻串聯,由於熱敏電阻隨着溫度的升高,電阻值降低,所以10K電阻兩端的電壓將上升。
二:NTC熱敏電阻的計算
NTC 熱敏電阻溫度計算公式:Rt = R EXP(B(1/T1-1/T2))
其中,T1和T2指的是K度,即開爾文溫度。
Rt 是熱敏電阻在T1溫度下的阻值。
R是熱敏電阻在T2常溫下的標稱阻值。100K的熱敏電阻25℃的值爲10K(即R=10K)。T2=(273.15+25)
EXP是e的n次方
B值是熱敏電阻的重要參數
通過轉換可以得到溫度T1與電阻Rt的關係T1=1/(ln(Rt/R)/B+1/T2),這裏可以將ln換算成log,即T1=1/(log(Rt/R)/B+1/T2)。
對應的攝氏溫度t=T1-273.15,同時+0.5的誤差矯正。
三:C程序設計
首先,我們只需要知道當前溫度下熱敏電阻的阻值就可以算出溫度。
該硬件電路是一個簡單的串聯分壓電路,所以通過歐姆定律就可以很容易求得當前溫度下的熱敏電阻的阻值。
下面是C實現的代碼。
//電壓換算成溫度
void temp_data(void)
{
float Rt=0;
float Rp=10000;
float T2=273.15+25;
float Bx=3950;
float Ka=273.15;
float vol=0;
vol=(float)((Get_Adc_Average(ADC_Channel_5,10))*(3.3/4096));
Rt=(3.3-vol)*10000/vol;
temp=1/(1/T2+log(Rt/Rp)/Bx)-Ka+0.5;
}