13655175864 发表于 2024-11-2 12:00:32

求助10k热敏电阻+下偏置电阻计算公式


本人小白,想把 “5v --10k电阻-- 热敏电阻 -- GND” 接线方法

改成 “5v -- 热敏电阻--10k电阻-- GND”的计算公式。

此为论坛找到的公式position = 1.0 / (1.0 / 298.15 + log((float)adc_12bit / (4096.0-(float)adc_12bit)) / 3950) - 273.15;    ( 温度T与电阻Rt的关系:T=1/(1/To+ln(Rt/Ro)/B))对应 “5v --10k电阻-- 热敏电阻 -- GND”可以用。

苦于水平有限,只会用,不会修改,特在此请教,谢谢。


VCC 发表于 2024-11-2 12:54:01

本帖最后由 VCC 于 2024-11-5 12:30 编辑

哈哈!我也不知道!

不过我可以试着帮你推导一下。


在网上可以找到如下权威公式,是温度值与热敏电阻电阻值的关系公式,叫做【斯坦哈特-哈特公式】(和你的公式是一模一样的)


其中R0和T0和B都由买到的热敏电阻规格决定

例如对于这款热敏电阻,它的R0=10kΩ @ T0=25℃=298.15K , B=3950



也就是:


而你给出的公式是:




也就是代入了ADC电阻与ADC转换值的换算公式:


只有这个公式是你需要修改的

那么就要考虑,这个公式是如何产生的?


对于Vadc,如果这样接线
                  (R1)            (R2)
VCC---------10kΩ---------热敏电阻--------GND
                            ↑
                         VADC

如果VADC=GND,那么ADC转换值=0
如果VADC=VCC,那么ADC转换值=4095

变化过程中线性变化,也就是ADC转换值:

而对于上述分压电阻接法,我们知道,串联电路中,电阻的比值就是各电阻两端电压的比值

也就是


对应这种接线


                  (R1)            (R2)
VCC---------10kΩ---------热敏电阻--------GND
                            ↑
                         VADC


公式就是:

和刚刚我们看到的


是完全一样的!

说明你的公式是对的!
适用于接线:

                  (R1)            (R2)
VCC---------10kΩ---------热敏电阻--------GND
                            ↑
                         VADC



下面推导适用于如下接线的公式:


               (R1)            (R2)
VCC-----热敏电阻---------10kΩ--------GND
                            ↑
                         VADC





得到:


因此,交换热敏电阻与分压电阻后,公式中的只需变为原来的倒数


也就是将公式

position = 1.0 / (1.0 / 298.15 + log((float)adc_12bit / (4096.0-(float)adc_12bit)) / 3950) - 273.15(热敏电阻接地)


改为

position = 1.0 / (1.0 / 298.15 + log((4096.0-(float)adc_12bit) / (float)adc_12bit) / 3950) - 273.15(热敏电阻接电源)


即可!


得到的变量position是热敏电阻的摄氏温度(℃)

上述公式仅适用于 热敏电阻在25℃下的标称电阻等于另一颗分压电阻阻值的接线方式
其中3950是热敏电阻适用于25~50℃范围的B值,不同的B值均可以买到(B值仅仅是一种热敏电阻的近似估算参数,对范围之外的数据是不准的)


其中
273.15K是0℃的开氏温度,
298.15K是25℃的开氏温度,
4096是12-bit ADC的满量程值(实际是最大值转换产生的数值只能是4095,最大数值是无法转换出来的)



另外转载一个来自村田官方网站的NTC基础知识文章

原网址见如下二维码(论坛不让发网址,那么二维码应该没事吧):


小坤 发表于 2024-11-2 13:00:15

那就查表

13655175864 发表于 2024-11-2 13:25:39

麻烦了,如果有 “5v -- 热敏电阻--10k电阻-- GND”的查表数据也行,3950

DebugLab 发表于 2024-11-2 15:27:37

热敏电阻和固定电阻反过来
直接把ADC值倒过来就行,就是最大值减掉ADC值

VCC 发表于 2024-11-2 16:06:47

13655175864 发表于 2024-11-2 13:25
麻烦了,如果有 “5v -- 热敏电阻--10k电阻-- GND”的查表数据也行,3950

关于查表数据,根据上述推导的公式得到,使用Excel计算得到数据如下:



VCC 发表于 2024-11-2 16:18:41

再画一个ADC值与温度的趋势关系

wlhet 发表于 2024-11-3 07:58:23

学习了

VCC 发表于 2024-11-3 14:49:59

a496298685 发表于 2024-11-2 16:18
再画一个ADC值与温度的趋势关系

后来想到,能不能用一个3次或4次函数来拟合这个曲线,从而大幅减轻CPU的计算工作量?

用Excel趋势线功能尝试拟合了一下,一个4次函数不太够,误差能有5℃。

还是得老老实实查表或者用理论公式。或者把曲线分段拟合一下?

zgrfox110 发表于 2024-11-3 19:52:50

a496298685 发表于 2024-11-2 16:06
关于查表数据,根据上述推导的公式得到,使用Excel计算得到数据如下:




把阻值直接算成对应的ADC值,查表法,一步出结果!
页: [1] 2
查看完整版本: 求助10k热敏电阻+下偏置电阻计算公式