我是靠谱客的博主 机智硬币,最近开发中收集的这篇文章主要介绍热敏电阻(NTC)温度计算,C语言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

------------------------------------------------2022.8.31--------------------------------------------------
参考资料:链接

计算的公式
其中的参数说明:

R1:热敏电阻在T1温度下的阻值;
R2:热敏电阻在T2温度下的标称阻值,T2 一般是常温25℃
B:热敏电阻的重要参数(参考具体型号热敏电阻datasheet),例如:3950
exp:e的n次方;
注:这里T1和T2指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度;其中T2 = (273.15 + 25), [通常都是用25℃]

公式什么的,怎么推导的,咱也不知道,会用就行,感觉直接看代码更直观。

计算NTC的温度的代码:

/**
* @brief
获取NTC温度值
* @param
ad_val:NTC当前的AD值
* @retval 温度值,单位℃
* @note
NTC阻值和温度公式:Rt = Rp * EXP(B*(1/T-1/Tn))
*
Rt:热敏电阻的当前阻值;
*
Rp:热敏电阻在常温下的标称阻值,例如:10k;
*
B值是热敏电阻的温度系数,例如3950
*
EXP是e的n次方;
*
这里T和Tn指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度;
*/
float Get_Temperature(const uint16_t ad_val)
{
float temp;
temp = Get_NTC_Resistor(ad_val);//该函数是获取NTC当前的阻值,需自己实现,返回的值的单位是KΩ
temp = log(temp / 10.0); // ln(Rt/Rp):Rt:当前温度下的阻值 Rp:25℃下的NTC阻值(K)
temp /= 3950.0;
// ln(Rt/Rp)/B 注:B值一般为NTC的规格,本次用的NTC型号是3950
temp += (1 / (273.15 + 25.0));
temp = 1 / temp;
temp -= 273.15;
return temp;
}

需要说明的是,如果自定义的函数(Get_NTC_Resistor)的返回值是以Ω为单位的话,函数中的 temp = log(temp / 10.0); 以10K的NTC为例,需改为 temp = log(temp / 10000.0); 其中,log() 属于标准库函数,在<math.h>中声明。

NTC的分压电阻的影响,在 (Get_NTC_Resistor)中体现,需要根据自己的电路来计算。需要特别注意的是,单片机ADC的参考电压需要为VCC,也就是跟NTC电路共用一个供电,目的是为了消除参考电压变动对阻值计算结果的影响。

请添加图片描述
可以发现,VCC项可以被消掉,也代表着参考电压变动对计算结果没有影响。当然,实际的计算方法还是按自己的电路来。

——————————————内容分割线——————————————————

如有错误请指正,防止误导别人! 发博文的初衷是为了帮助有需要的人,不希望有人被误导,急需各位的指正,看到了我会立即修改。各位如果有什么需要补充的,也可以留言。

最后

以上就是机智硬币为你收集整理的热敏电阻(NTC)温度计算,C语言的全部内容,希望文章能够帮你解决热敏电阻(NTC)温度计算,C语言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(28)

评论列表共有 0 条评论

立即
投稿
返回
顶部