1988020566 发表于 2024-10-31 19:36

NTC热敏电阻温度计算

1.概述
NTC热敏电阻随环境温度(T)升高,电阻值®会下降,反之,当温度(T)下降,电阻值®会上升。NTC热敏电阻的计算公式有Steinhart-Hart方程和B值法两种方法,我只熟悉了B值法。

常规NTC热敏电阻参数:温度为(R25℃)时,阻值为10kΩ,B值(25/85)为3435。温度为(R25℃)时,阻值为100kΩ,B值(25/50)为3950。

2.计算公式
Rt = R*EXP(B*(1/T1-1/T2))
T1 =1/(ln(Rt/R)/B+1/T2)
这里T1和T2指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度;其中T2=(273.15+25)
Rt 是热敏电阻在T1温度下的阻值;
R是热敏电阻在T2常温下的标称阻值;
B值是热敏电阻的重要参数;
EXP是e的n次方;

3.excel公式
=100000*EXP(3950*(1/(273.15+(T))-1/(273.15+25)))
这里以温度为100KΩ,B值为3950为例
T可以输入摄氏度或选中表格,进而生成阻值数据,可以用于查表并获取温度。

4.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;
}


yangjiaxu 发表于 2025-1-23 17:28

这个还得根据你的电路设计,而且还需要注意ADC采集的,取多次平均值计算更准确
页: [1]
查看完整版本: NTC热敏电阻温度计算