一、計算公式
補充:
B=3950
R=10K
T2=25度
查RT表,25度對應的是10K
電路:
熱敏電阻與上拉電阻R813分壓,獲取溫度與Vo電壓的關系,在根據Vo折算出與MCU ADC的數值。
再將ADC代出Rt,即得到ADC與T的關系公式。
二、C實現
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實現的代碼。
#include <math.h> //電壓換算成溫度 void temp_data(void) { float Rt=0; //Rp上拉電阻值 float Rp=10000; //T2為25攝氏度,折算為開爾文溫度 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; }
PT100
校准:
找到0度、92度對應PT100的阻值,作為校准的阻值。
軟件讀到的溫度應該是0度&92度,如果讀到的值有偏差,則T0&T92作為軟件校准的OFFSET值。