1、计算公式spa
补充:code
B=3950blog
R=10Kclass
T2=25度硬件
查RT表,25度对应的是10Kfloat
电路: im
热敏电阻与上拉电阻R813分压,获取温度与Vo电压的关系,在根据Vo折算出与MCU ADC的数值。d3
再将ADC代出Rt,即获得ADC与T的关系公式。img
2、C实现di
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; }