首页 > 编程知识 正文

NTC温度采集,ntc温度对照表

时间:2023-05-06 17:31:35 阅读:254445 作者:4411

首先第一部分需要先弄明白它的名字中的各个部分都是什么意思,觉得不需要的可以直接跳过。

一、NTC命名

在淘宝上随便搜了一个NTC电阻,命名如下:

1、MF代表含义:**

电阻命名含义MF51单端玻璃封装NTC热敏电阻器MF52小黑头测温型NTC热敏电阻MF58玻壳测温型NTC热敏电阻器MF72功率型NTC热敏电阻器MF73大功率NTC热敏电阻器

2、10K、5K ··· 代表含义:
这里的10K代表的是在25℃下的标准阻值。同理5K代表在25℃下的标准阻值为5K。
3、B值:
B值单位是开尔文温度(K)。半导体陶瓷经过高温烧结后通过一系列的加工工序形成具有一定电阻率的NTC热敏芯片,每种配方和烧结温度下只有一个B值。NTC热敏电阻的B值与产品电阻温度系数正相关,也就是说B值越大,其电阻温度系数也就越大。(百度百科答案,其实这里只需要知道这是一个系数就可以了,因为下面计算会用到)

三、硬件连接


ADC采集NTC电阻两端电压。通过电压计算得出NTC此刻阻值Rntc(下面会用到)。

三、根据阻值计算得出温度

B:B值(3435、3950···)
R25:指NTC在25℃下的阻值(10K、5K、100K···)
Rntc:二中计算得到的实时NTC阻值
T25:25℃下的开尔文温度,也就是298.15
Tn:此时计算得到的实际开尔文温度(要得到摄氏度 C=Tn-273.15

根据二计算得到的电阻值,根据开尔文公式,可以直接得到当前的开尔文温度Tn公式如下:B=(lnR25 - lnRntc)/(1/T25 - 1/Tn)
得到当前的开尔文温度值:Tn
根据C=Tn-273.15计算得到摄氏度。

四、程序

由于需要用到ln,需要用到math.h。需要占用较大资源,所以粘贴一个实现了ln的算法:

double myln(double a){ int N = 15;//我们取了前15+1项来估算 int k,nk; double x,xx,y; x = (a-1)/(a+1); xx = x*x; nk = 2*N+1; y = 1.0/nk; for(k=N;k>0;k--) { nk = nk - 2; y = 1.0/nk+xx*y; } return 2.0*x*y;}

添加代码验证截图:

开尔文温度算法:

#define T25 298.15#define R25 10#define B3435float Get_Kelvin_Temperature(float Rntc){float N1,N2,N3,N4;N1 = (myln(R25)-myln(Rntc))/B;N2 = 1/T25 - N1;N3 = 1/N2;N4 = N3-273.15;return N4;}

以上程序经过实测OK。如果你在实际使用时发现有问题,看一下使用的设备是否支持浮点运算。

五、验证

可以去嘉立创找一下相应的说明书,验证一下ADC采集之后计算得到的电阻值,经过计算出来得到的温度是否正确。本文中只截取一部分常用温度供读者验证。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。