1、計算公式spa
補充:code
B=3950blog
R=10Kclass
T2=25度硬件
查RT表,25度對應的是10Kfloat
電路: im
熱敏電阻與上拉電阻R813分壓,獲取溫度與Vo電壓的關係,在根據Vo折算出與MCU ADC的數值。d3
再將ADC代出Rt,即獲得ADC與T的關係公式。img
2、C實現di
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; }