一、计算公式
补充:
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; }
PT100
校准:
找到0度、92度对应PT100的阻值,作为校准的阻值。
软件读到的温度应该是0度&92度,如果读到的值有偏差,则T0&T92作为软件校准的OFFSET值。