NTC测温,怎样做到分辨率0.1度
NTC测温,怎样做到分辨率0.1度呢NTC是非线性的,以前没做过这样的东西。如果查表,1度分辨率还可以,0.1度不知怎么取?
有经验的师傅请指点一下思路! 每度一个数据,再插值计算。 楼上的师傅,能否具体点,小弟愚钝! 做1度的阻值表,查表得到整数温度值,每度之间进行线性插值计算到0.1度即可 举个例子
如果
25度AD为125
26度AD为135
那么AD为127时, 温度=25+(135-127)/10,我这么理解对不对?
楼上的朋友是不是这个意思 不对,但意思就是这样,正确的计算应该是:
温度=25+(127-125)/(135-125)=25.2度
使用MCU计算的时候,可以把所有的数值放大10倍,也就是:温度=250+(127-125)*10/(135-125),单位0.1度。
算出来的数值为252,因为单位为0.1度,所以即为25.2度。 很难做到稳定的,并且误差小于0.1度 精度和分辨率是两个概念。6楼的方法只是提高了分辨率,但实际数值是虚假的,不是精度提高了。 分辨率0.1很容易,但是精度达到0.1那就比较困难了 精度提高,要用位数很高的AD,楼主可以用“程序匠人”的双积分型的方法。即用单片机的IO口和外接的电阻电容充放电进行AD采用。精度可以作得很高。而且现在高精度的AD本身就是用双积分法。 精度和分辨率是两个概念。6楼的方法只是提高了分辨率,但实际数值是虚假的,不是精度提高了。
chunyang 发表于 2010-11-20 22:02 https://bbs.21ic.com/images/common/back.gif
LZ就是要的0.1分辨率啊,呵呵,他可没说要0.1的精度. 先标定一下 NTC本身是有误差的,一般是1%~3%。
大多数单片机的ADC模块,分辨率也是8位~12位不等,实际精度会更低一些。
另外还受到电源、参考电压等精度的影响。
所以,单纯提高分辨率,没有实际意义。
但是在有的项目中,需要显示小数点后面一位。也就是确实需要提高分辨率,而并不在乎精度。对于这种情况,可以通过人为扩展的方法来实现。
比如把两次采样值相加后再除以2,即可提高1位分辨率;
同理,如果要提高2位分辨率,那么只要采样4次取平均;
以此类推,如果要把分辨率提得更高,只要采样更多的数据去取平均即可。 0.1度,线性插值就可以了,要12bit的ADC。 我用RC充放电的方法做到了0.01度的分辨率,范围达到100度。 谢谢,楼上各位高手,小弟已明白思路。因为NTC本来误差为1%,所以精度做0.1就没有太大的实用价值,此客
户要求最大误差为0.5度。
显示范围是0-45°,常温下用的一个产品。
设计时,应该注意些什么东西呢! 流行音乐 发表于 2010-11-21 20:20
我用RC充放电的方法做到了0.01度的分辨率,范围达到100度。
RC充电法不也是测NTC阻值吗?
页:
[1]