|
50黑幣
這是一段使用Steinhart-hart方程做ntc測溫的代碼。這個函數(shù)只需要ntc100度和ntc0度的固定值和一個現(xiàn)場測得的ad值就可以測出溫度,其中是怎么利用ad值計算出當(dāng)前溫度的電阻值的,有沒有大佬可以解答一下呢?
/*************************************************
函數(shù)名稱: NTC30K_function
函數(shù)功能: NTC30K計算函數(shù)
函數(shù)形參:
advalue:adc值
advalue_NT0:校正的0度ADC
advalue_NT100:校正的100度ADC
advalue_NTShort:校正的偏移ADC,NTC短路值
函數(shù)返回值:溫度值
*************************************************/
FP32 NTC30K_function(FP32 advalue,FP32 advalue_NT0,FP32 advalue_NT100,FP32 advalue_NTShort)
{
FP32 REF,VREF,Rt,LNR;
REF=94980*2069*(advalue_NT0-advalue_NT100);
REF=REF/(94980*(advalue_NT100-advalue_NTShort)-2069*(advalue_NT0-advalue_NTShort));
VREF=(advalue_NT100-advalue_NTShort)*((2069+REF)/2069);
advalue=advalue-advalue_NTShort;
Rt=(advalue*REF)/(VREF-advalue);
LNR=log(Rt);
Rt=(1/(0.00093494+(0.0002211*LNR)+(0.0000001275*LNR*LNR*LNR)))-273.15;
return(Rt);
}
|
|