一、计算公式
补充:
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; }