sandao 发表于 2010-11-20 09:40

NTC测温,怎样做到分辨率0.1度

NTC测温,怎样做到分辨率0.1度呢


NTC是非线性的,以前没做过这样的东西。如果查表,1度分辨率还可以,0.1度不知怎么取?

有经验的师傅请指点一下思路!

gx_huang 发表于 2010-11-20 10:26

每度一个数据,再插值计算。

sandao 发表于 2010-11-20 10:43

楼上的师傅,能否具体点,小弟愚钝!

yewuyi 发表于 2010-11-20 11:50

做1度的阻值表,查表得到整数温度值,每度之间进行线性插值计算到0.1度即可

sandao 发表于 2010-11-20 14:32

举个例子
如果

25度AD为125
26度AD为135

那么AD为127时,      温度=25+(135-127)/10,我这么理解对不对?

楼上的朋友是不是这个意思

yewuyi 发表于 2010-11-20 14:46

不对,但意思就是这样,正确的计算应该是:

温度=25+(127-125)/(135-125)=25.2度

使用MCU计算的时候,可以把所有的数值放大10倍,也就是:温度=250+(127-125)*10/(135-125),单位0.1度。

算出来的数值为252,因为单位为0.1度,所以即为25.2度。

apple 发表于 2010-11-20 20:18

很难做到稳定的,并且误差小于0.1度

chunyang 发表于 2010-11-20 22:02

精度和分辨率是两个概念。6楼的方法只是提高了分辨率,但实际数值是虚假的,不是精度提高了。

BitFu 发表于 2010-11-20 22:06

分辨率0.1很容易,但是精度达到0.1那就比较困难了

sxhhhjicbb 发表于 2010-11-20 23:10

精度提高,要用位数很高的AD,楼主可以用“程序匠人”的双积分型的方法。即用单片机的IO口和外接的电阻电容充放电进行AD采用。精度可以作得很高。而且现在高精度的AD本身就是用双积分法。

yewuyi 发表于 2010-11-21 11:22

精度和分辨率是两个概念。6楼的方法只是提高了分辨率,但实际数值是虚假的,不是精度提高了。
chunyang 发表于 2010-11-20 22:02 https://bbs.21ic.com/images/common/back.gif

LZ就是要的0.1分辨率啊,呵呵,他可没说要0.1的精度.

ar_dong 发表于 2010-11-21 11:39

先标定一下

程序匠人 发表于 2010-11-21 11:57

NTC本身是有误差的,一般是1%~3%。
大多数单片机的ADC模块,分辨率也是8位~12位不等,实际精度会更低一些。
另外还受到电源、参考电压等精度的影响。

所以,单纯提高分辨率,没有实际意义。

但是在有的项目中,需要显示小数点后面一位。也就是确实需要提高分辨率,而并不在乎精度。对于这种情况,可以通过人为扩展的方法来实现。

比如把两次采样值相加后再除以2,即可提高1位分辨率;
同理,如果要提高2位分辨率,那么只要采样4次取平均;
以此类推,如果要把分辨率提得更高,只要采样更多的数据去取平均即可。

coody 发表于 2010-11-21 12:52

0.1度,线性插值就可以了,要12bit的ADC。

流行音乐 发表于 2010-11-21 20:20

我用RC充放电的方法做到了0.01度的分辨率,范围达到100度。

sandao 发表于 2010-11-23 13:56

谢谢,楼上各位高手,小弟已明白思路。因为NTC本来误差为1%,所以精度做0.1就没有太大的实用价值,此客

户要求最大误差为0.5度。
显示范围是0-45°,常温下用的一个产品。

设计时,应该注意些什么东西呢!

yzq13246068880 发表于 2020-5-20 17:00

wsnsyy 发表于 2020-5-22 17:45

流行音乐 发表于 2010-11-21 20:20
我用RC充放电的方法做到了0.01度的分辨率,范围达到100度。

RC充电法不也是测NTC阻值吗?
页: [1]
查看完整版本: NTC测温,怎样做到分辨率0.1度