找回密码
 立即注册

QQ登录

只需一步,快速开始

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

NTC热敏电阻温度计算公式答疑

  [复制链接]
回帖奖励 100 黑币 回复本帖可获得 100 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
看到有个NTC热敏电阻温度计算公式如下:
temp = (signed int)(3950.0/(11.33657+log(6.04*(float)temp[0]/(1024 - (float)temp[0]))) - 273.15);

电路是10K上拉电阻+NTC10K/B=3950下拉;求高手解答11.33657和6.04这两个参数是怎么计算出来的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:390416 发表于 2022-4-21 08:26 | 只看该作者
这个帖子里面有现成的NTC温度检测代码
http://www.51hei.com/bbs/dpj-213898-1.html
回复

使用道具 举报

板凳
ID:935919 发表于 2022-4-21 08:35 | 只看该作者
本帖最后由 sinside 于 2022-4-21 08:56 编辑

以下是我的猜测, 应该是是通过两个温度, 去计算想要测量的温度, T0是参考温度, TN是另一个温度. 不知道有没有问题.
搞错了, 忘记电阻的10K了
以后面的图片为准, 基本就可以比对出来了

2022-04-21_082911.png (32.41 KB, 下载次数: 58)

公式

公式

2022-04-21_085524.png (18.35 KB, 下载次数: 61)

公式1

公式1
回复

使用道具 举报

地板
ID:935919 发表于 2022-4-21 09:05 | 只看该作者
本帖最后由 sinside 于 2022-4-21 09:30 编辑

以此公式为准, 6.几是RN*RK, 另外一个值是B/TN

下面的公式只是推动上面公式的T怎么来的, 最后一部分是错误的


此外273应该是K氏温度的转换
回复

使用道具 举报

5#
ID:951991 发表于 2022-4-21 09:20 | 只看该作者
你查下厂家的规格书,有个好像是固定参数
回复

使用道具 举报

6#
ID:162317 发表于 2022-4-21 13:39 | 只看该作者
几位都没说到重点
回复

使用道具 举报

7#
ID:935919 发表于 2022-4-22 10:37 | 只看该作者

兄弟, 你看我地板楼的回答, 6.04是RN*RK得到的;   11.33657是B/TN得到的, 不正确吗? 讨论一下?
RN长标准温度的电阻值, RK是10K电阻值, B是传感器的B值TN是标准温度.
公式总V=1024, AD是采样值=tmep[0]

哪里不一致, 再讨论一下?
回复

使用道具 举报

8#
ID:162317 发表于 2022-4-22 15:10 | 只看该作者
sinside 发表于 2022-4-22 10:37
兄弟, 你看我地板楼的回答, 6.04是RN*RK得到的;   11.33657是B/TN得到的, 不正确吗? 讨论一下?
RN长标准 ...

TEMP是计算出来的温度值,不是AD值。TEMP[0]才是AD值,25度的时候。NTC是10K,数值代进去算下,就发现你说的根本就不对。
回复

使用道具 举报

9#
ID:935919 发表于 2022-4-22 16:22 | 只看该作者
本帖最后由 sinside 于 2022-4-24 09:15 编辑
南柯一梦 发表于 2022-4-22 15:10
TEMP是计算出来的温度值,不是AD值。TEMP[0]才是AD值,25度的时候。NTC是10K,数值代进去算下,就发现你 ...

我上面说的AD值就是temp[0]啊, 11.33657=B/TN, 温度电阻的B值=3950吧? TN=3950/11.33657~=(348.4-273)°, 你能否查一下你电阻值表, 温度为(348.4-273)°左右, 电阻值是多少? RN=(348.4-273)°的阻值, 然后把看看是否等于6.04/10K = 0.000604欧姆左右?
回复

使用道具 举报

10#
ID:935919 发表于 2022-4-22 17:02 | 只看该作者

不好意思, 如图示这步推导错了 6.04=R10K/RN才对, 你再试试
回复

使用道具 举报

11#
ID:739727 发表于 2022-4-22 18:04 | 只看该作者
普通单片机最好用查表法,数学计算太耗费单片机资源
回复

使用道具 举报

12#
ID:162317 发表于 2022-4-22 19:05 | 只看该作者
AAA_MCU 发表于 2022-4-22 18:04
普通单片机最好用查表法,数学计算太耗费单片机资源

带小数点显示的,查表得好几千个,更耗费单片机资源
回复

使用道具 举报

13#
ID:162317 发表于 2022-4-22 19:16 | 只看该作者
sinside 发表于 2022-4-22 17:02
不好意思, 如图示这步推导错了 6.04=R10K/RN才对, 你再试试

25°时R10K/RN=1,6.04应该不是这样算出来的,只要电路不变,外接V变化,比如5V或者3.3V,计算出来的温度值都是正确的,用8/10/12位AD,只需将AD改成对应的就行,所以跟V或者AD位数关系不大
回复

使用道具 举报

14#
ID:935919 发表于 2022-4-24 08:09 | 只看该作者
南柯一梦 发表于 2022-4-22 19:16
25°时R10K/RN=1,6.04应该不是这样算出来的,只要电路不变,外接V变化,比如5V或者3.3V,计算出来的温度 ...

6.04不是用25°作为计算参考点算出来的, 你用25°的RN算当然不对. 能否把你的传感器的规格书发一下, 我对一下就知道了.

另外, 采样电路应该是电源->10K->温度传感器-->地, 没有错吧?
回复

使用道具 举报

15#
ID:213173 发表于 2022-4-24 09:33 | 只看该作者
南柯一梦 发表于 2022-4-22 19:05
带小数点显示的,查表得好几千个,更耗费单片机资源

用对分查表法很块也较准确,此示例在常温环境误差小于0.5度。 -30~150度数码管温度计(对分查表法).rar (27.25 KB, 下载次数: 110)

回复

使用道具 举报

16#
ID:844772 发表于 2022-4-24 11:26 | 只看该作者
板凳说的没错,就是通过NTC 热敏电阻温度计算公式推到的,只是变量名称大家用的不同,就下边的公式,反推就行啦。
Rt = R *EXP(B*(1/T1-1/T2))这里T1和T2指的是K度,其中T2=(273.15+25),Rt 是热敏电阻在T1温度下的阻值,R是热敏电阻在T2常温下的标称阻值;B值是热敏电阻的参数。
回复

使用道具 举报

17#
ID:1021200 发表于 2022-4-24 12:34 | 只看该作者
NTC热敏电阻-阻值温度计算
回复

使用道具 举报

18#
ID:1021200 发表于 2022-4-24 12:35 | 只看该作者
温度系数B值计算法: [公式]  [公式]  这里T1和T2指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度;其中T2=(273.15+25)[通常都是用25℃]  R1是热敏电阻在T1温度下的阻值;  R2是热敏电阻在T2温度下的标称阻值,T2一般是常温25℃  B值是热敏电阻的重要参数(参考具体型号热敏电阻datasheet)  exp是e的n次方;
回复

使用道具 举报

19#
ID:1021203 发表于 2022-4-24 13:34 | 只看该作者
用查表加插值的方法来求解,省时间,精度高
回复

使用道具 举报

20#
ID:734017 发表于 2022-11-9 23:34 | 只看该作者
wulin 发表于 2022-4-24 09:33
用对分查表法很块也较准确,此示例在常温环境误差小于0.5度。

前辈,这个位置是这样的吗?
回复

使用道具 举报

21#
ID:734017 发表于 2022-11-9 23:36 | 只看该作者
wulin 发表于 2022-4-24 09:33
用对分查表法很块也较准确,此示例在常温环境误差小于0.5度。

只考虑if(Sample<=T_Value[M])       
回复

使用道具 举报

22#
ID:401564 发表于 2022-11-10 00:01 | 只看该作者
南柯一梦 发表于 2022-4-22 19:05
带小数点显示的,查表得好几千个,更耗费单片机资源

NTC查表是最有性价比的,不管你是在哪找资料,NTC大多用的都是查表
不是说人家不会用数学公式,它也不是什么单片机资源的问题的,有的时候,一个程序基本没有其它任务,人家一样的用查表
温度后面的小数点可以用插值计算
取样电阻的误差,单片机ADC误差,这两个误差加一起,你的NTC能做到0.5度的误差,那就算是工业级的了
正常来说2度的误差都是正常的
后面的小数点,就是图个心理安慰罢了
回复

使用道具 举报

23#
ID:883242 发表于 2022-11-10 03:24 | 只看该作者
楼主可以找厂家要一份精确地NTC分度表,然后用公式套一下,看看误差几何?

NTC用公式计算特别尴尬,要用浮点数,什么都不用做一下子几k的代码量就出来了,对于单片机来说占用资源太严重。因为是纯理论,实际上也非常不准。干啥啥不行,bb第一名,制杖才会用公式来算。
回复

使用道具 举报

24#
ID:373388 发表于 2022-11-10 09:29 | 只看该作者
我用32bit单片机 计算这个是毛毛雨,但我NTC测温还是用查表法,对分查表加插值,想几位小数就可以几位小数的,小数不是精度,只能算是分辨率
回复

使用道具 举报

25#
ID:1051345 发表于 2022-11-10 15:36 | 只看该作者
NTC通常都是用查表法,将各个温度点对应的AD值预存进去
回复

使用道具 举报

26#
ID:1051382 发表于 2022-11-10 17:06 | 只看该作者
这个刚好,非常实用,谢谢楼主
回复

使用道具 举报

27#
ID:765177 发表于 2022-12-30 11:10 | 只看该作者
TEMP是计算出来的温度值,不是AD值。TEMP[0]才是AD值,25度的时候
回复

使用道具 举报

28#
ID:1059868 发表于 2022-12-31 09:53 | 只看该作者
NTC 热敏电阻温度计算公式:Rt = R EXP(B(1/T1-1/T2))  其中,T1和T2指的是K度,即开尔文温度。  Rt 是热敏电阻在T1温度下的阻值。  R是热敏电阻在T2常温下的标称阻值。100K的热敏电阻25℃的值为10K(即R=10K)。T2=(273.15+25)  EXP是e的n次方  B值是热敏电阻的重要参数  通过转换可以得到温度T1与电阻Rt的关系T1=1/(ln(Rt/R)/B+1/T2),这里可以将ln换算成log,即T1=1/(log(Rt/R)/B+1/T2)。  对应的摄氏温度t=T1-273.15,同时+0.5的误差矫正
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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