在美容仪的温度采样中,有老前辈常总嵌套了一个C语言的温度算法,硬件上利用一个热敏电阻和10K电阻串联,算法理解如下:
1、、算法原理:
温度采样中有2种热敏电阻:NTC和PTC,一般厂家会提供一个温度和阻值的函数关系:Rt = R *EXP(B*(1/T1-1/T2))
参数说明:
Rt 是热敏电阻在T1温度下的阻值;
R是热敏电阻在T2常温下的标称阻值;
B值是热敏电阻的重要参数;
EXP是e的n次方;
注意:T1和T2指的是K度即开尔文温度,K度=273.15(**温度)+摄氏度;
比如 NTC热敏电阻 10K (型号:MF52AT) 5%精度 B值:3950 1%,则:10K表示25度的温度。
当0度时 T1=0+273.15,T2=25+273.15, B=3950
Rt1=10000kΩ*exp(3950*(1/(273.15+0)-1/(273.15+25)))=33620.6037214357 欧姆。
2、C语言实现:
对于已知Rt求T1还需要做一些转换,对于math.h中提供exp(a)函数,用于求e的 a次方。所以涉及公式转换需要公式lnx。
T = NTC_B*log10(e)*NTC_T0 / ( NTC_T0*log10(fRegister) + NTC_B*log10(e)LOGE - NTC_T0*log10(NTC_R0) ) - 273;(这里使用换低公式换成log10,相比log计算时间有明显减少)。
NTC_B*log10(e)*NTC_T0
T=---------------------------------------------------------------------------------—273
( NTC_T0*log10(fRegister) + NTC_B*log10(e)LOGE - NTC_T0*log10(NTC_R0) )
版权*转载申明:
本站内容为本站编辑或整理,所以转载务必通知本站并以超链接形式注明内容来自本站,以免带来不必要麻烦。