热敏电阻温度计算 公式 AD采集程序
一、热敏电阻公式
NTC 热敏电阻温度计算公式:Rt = R *EXP(B*(1/T1-1/T2))其中,T1和T2指的是K度,即开尔文温度。
Rt 是热敏电阻在T1温度下的阻值。
R是热敏电阻在T2常温下的标称阻值。100K的热敏电阻25℃的值为100K(即R=100K)。T2=(273.15+25)
EXP是e的n次方
B值是热敏电阻的重要参数
通过转换可以得到温度T1与电阻Rt的关系T1=1/(ln(Rt/R)/B+1/T2)
对应的摄氏温度t=T1-273.15,同时+0.5的误差矫正。
二、硬件连接
单片机是3.3V供电,热敏电阻与100K电阻连接。
热敏电阻参数为100K,B值为3950
三、程序
求T1 =ln(Rt/R)/B+1/T2 C程序: #include "math.h" const float Rp=10000.0; //10K const float T2 = (273.15+25.0);;//T2 const float Bx = 3950.0;//B const float Ka = 273.15; float Get_Temp(void) { float Rt; float temp; Rt = Get_TempResistor(); //like this R=5000, T2=273.15+25,B=3470, RT=5000*EXP(3470*(1/T1-1/(273.15+25)), temp = Rt/Rp; temp = log(temp);//ln(Rt/Rp) temp/=Bx;//ln(Rt/Rp)/B temp+=(1/T2); temp = 1/(temp); temp-=Ka; return temp; }
四、ln、log、lg说明
数学中的公式和c语言中有小小的区别。
1、数学中
log是对数符号,右边写真数和底数(上面是真数,下面是底数)lg是以10为底数(例lg100=2)(lg为常用对数)
ln是以e为底数(lne2=2)(ln为自然对数 e=2.7182818284590452353602874713527...)
2、c语言中
c语言里面只有两个函数log和log10其中
函数 log(x) 表示是以e为底的自然对数,即 ln(x)
函数 log10(x) 以10为底的对数,即 lg(x)
以其它数为底的对数用换底公式来表示
函数如下:
double logab(double a,double b)
{
return log(b)/log(a);
}