请问如何用C51做热敏电阻的非线性补偿?

2020-01-21 21:35发布

硬件电路结构已经固定不可修改,就是电源经过10K电阻与热敏电阻到地,10位ADC对热敏电阻上的电压进行取样。要求能测量0~80℃范围,精度最好0.1℃
我计算了B值3435时,0~80℃,每隔5℃的测量电压与转换值列表,发现非线性很严重。如果用全查表的方式来做补偿,就算精度1℃也要一个80位的表格,对我的应用来说还是空间大了点。
有没有什么占用空间小的补偿办法?计算复杂点可以接受,对实时性的要求不是很高。32M主频的C51能在0.03S内完成即可
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
dengxiaofeng
2020-01-22 15:49
10bit ADC 范围 0-1023  测温范围 0-80°  精度 0.1° 分辨率  80/0.1==800  可以说几乎做不到 精度0.1  
因为 ADC 还有什么 失码,积分非线性误差  什么的   
还有你的基准 稳不稳  温漂之类的问题
就算你得到了稳定的数据输出,校准平台也是一个相当麻烦的事情?
测温到0.1 不是连一个表都舍不得建立吧,我觉得现在的单片机 flash 超级大 如果可以用表格换精度 我愿意建立很多的表格 因为单片机就善于查表 不善于计算

---------------------------------------------------------------------------------------------
我用16bit ADC 处理了基准,分压电阻是 千分之一精度 10ppm 温漂,每个热敏电阻每隔10°校准(0.1°恒温槽 + 标准温度计)
数据然后中间数据计算,得到了 0.2°左右的精度
---------------------------------------------------------------------------------------------
楼主现在的硬件 10bitADC 不建表  只计算 就算你有比较好的补偿 也会花费比建表更多的精力
要线性的 我记得南京有一家公司 造线性热敏电阻 楼主可以考虑一下!
楼主先把精度搞到 0.3 或者 0.5 左右 就明白了

----------------------------------------------------------------------------------------------

一周热门 更多>