NTC热敏电阻温度计算以及C语言实现

一:硬件设计
这里使用的是MF52-103热敏电阻,其中B为3950,它与10K电阻串联,由于热敏电阻随着温度的升高,电阻值降低,所以10K电阻两端的电压将上升。
NTC热敏电阻温度计算以及C语言实现_第1张图片
二: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;
}

你可能感兴趣的:(NTC热敏电阻温度计算以及C语言实现)