一、硬件设计
这里用的是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;
}