概述
------------------------------------------------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语言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复