找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8670|回复: 7
打印 上一主题 下一主题
收起左侧

热敏电阻问题如何用查表法计算温度?

[复制链接]
跳转到指定楼层
楼主
ID:725056 发表于 2020-5-2 22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ntc热敏电阻通过ad转换得到了ad值,然后怎么算出热敏当前温度的阻值呢?我想用查表法
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:420836 发表于 2020-5-3 00:11 | 只看该作者
如果NTC电阻相对于温度不是线性的,则使用查找表是最佳方法。 可以通过实验找到所有温度点及其相应的电阻,然后将数据填充到二维表中,也可以只使用NTC热敏电阻数据表提供的表,然后使用插值法找到两个已知点之间的任何值。
回复

使用道具 举报

板凳
ID:695670 发表于 2020-5-3 01:36 | 只看该作者
NTC作为一种负温度系数热敏电阻,其阻值随温度升高而降低。利用热敏电阻的特性可以做温度传感器检测温度应用在单片机中。下面简单介绍下,在单片机中AD检测热敏电阻电压值,然后转换成电阻值,求出当前的实际温度。  一、热敏电阻公式 NTC 热敏电阻温度计算公式:Rt = R *EXP(B*(1/T1-1/T2))  其中,T1和T2指的是K度,即开尔文温度。  Rt 是热敏电阻在T1温度下的阻值。  R是热敏电阻在T2常温下的标称阻值。100K的热敏电阻25℃的值为100K(即R=100K)。T2=(273.15+25)  EXP是e的n次方  B值是热敏电阻的重要参数  通过转换可以得到温度T1与电阻Rt的关系T1=1/(ln(Rt/R)/B+1/T2)   (所以对应只有一个Rt未知数即可求出T1实时温度)  对应的摄氏温度t=T1-273.15,同时+0.5的误差矫正。  二、硬件连接方式        单片机通过ADC检测热敏电阻电压值,或者相关分压值。一般在热敏电阻上串联与Rt阻值相同的分压电阻。因为计算T1公式中需要知道Rt/R的比值关系,所以在这样的串联分压电路时电阻比值即等于电压比值,不需要将测得电压值再换算成电阻值。具体电路图如下:                  图中的检测电压是测分压电阻R3的,一般来说直接测RTC更为直观。R2由于单片机IO的高阻态等设置,R2上相当于开路,所以测得电压可以当作为R3上的电压。  三、程序实现          ADC获取过程就不再赘述了,相关程序可以在前一篇博客中查看,我这边直接将获取了相应温度后如何处理程序展示下:  uint16_t TempValue_Calculate( float TempADCValue ) {      float TempValue = 0;          float res_proportion = (vdd_value-TempADCValue)/TempADCValue;     //电阻比值相当于电压比值,根据电路图计算,          TempValue = 1.0/( (log(res_proportion))/3950.0 + 1.0/(273.15+25.0) ) - 273.15;          //JlinkPrintf("current temp is %.2f\r\n,", TempValue);               return  (uint16_t)TempValue; }      //  vdd_value为内部电压值,TempADCValue为对应AD检测的电压值(在这边是电路图中的R3电压)     补充下知识点: 数学中的公式和c语言中有小小的区别。  1、数学中  log是对数符号,右边写真数和底数(上面是真数,下面是底数)  lg是以10为底数(例lg100=2)(lg为常用对数)  ln是以e为底数(lne2=2)(ln为自然对数 e=2.7182818284590452353602874713527...)  2、c语言中  c语言里面只有两个函数log和log10  其中  函数 log(x) 表示是以e为底的自然对数,即 ln(x)  函数 log10(x) 以10为底的对数,即 lg(x)   以其它数为底的对数用换底公式来表示    函数如下:  double logab(double a,double b) { return log(b)/log(a); } ———————————————— 版权声明:本文为CSDN博主「众缈之门」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_42660303/article/details/84145382
回复

使用道具 举报

地板
ID:743131 发表于 2020-5-3 08:28 | 只看该作者
可以通过实验找到所有温度点及其相应的电阻,然后将数据填充到二维表中,也可以只使用NTC热敏电阻数据表提供的表,然后使用插值法找到两个已知点之间的任何值。
回复

使用道具 举报

5#
ID:213173 发表于 2020-5-3 08:47 | 只看该作者
楼主想用查表法得到AD值首先得制表。普通人士不可能有条件测出NTC热敏电阻大范围的温度/阻值关系,通常只能根据厂商提供的产品手册和所选AD芯片的转换精度(位数)制表。
回复

使用道具 举报

6#
ID:213173 发表于 2020-5-3 09:03 | 只看该作者
给你一个表,相关数据复制到数组中即可。
10K B3950 NTC温阻电压编码表 上偏置电阻2.4K.zip (30.28 KB, 下载次数: 97)

回复

使用道具 举报

7#
ID:725056 发表于 2020-5-3 09:39 | 只看该作者
wulin 发表于 2020-5-3 09:03
给你一个表,相关数据复制到数组中即可。

谢谢,这个文件对我挺有帮助的
回复

使用道具 举报

8#
ID:519352 发表于 2020-5-3 11:29 | 只看该作者
NTC和电阻分压,算出阻值,然后查表
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表