问题可能有
第一个可能,你AD转换也许是10位的12位的14位的,但是你抄了别人的示例,省略了低二位甚至更多,精度自然低了,
第二个可能,AD转换都是基于基准电压的,你的基准电压不是一个恒定值,例如你用电池做基准电压了,基准电压是时刻在变化的。
第三个可能,你的基准电压低于实测电压,那么AD就是MAX值。
1、你测得不准,通常只有几mv(或ma)
2、测得电压值跟实际要显示的值(比如说浓度)要经过换算的,而且通常不是线性关系
这个要看待测电压情况和AD换算出电压差距具体情况
1. 差距很小,基本可以认为是正常的,因为无论如何都有可能一些波动(待测电压的,相关波纹、一些干扰等等),可以不用考虑处理
2.差距很大则要具体分析
2.1 本身待测电压波动比较厉害,不能判断AD有问题
2.2 待测电压本身很稳定,则判断哪方面问题(假设待测电压符合AD范围)
2.2.1 AD的基准设置问题
2.2.2 AD相应代码处理问题,特别是位宽处理是否正确
2.2.3 其他原因,比如测量采样方式不对(接线不对——引入了额外的压降等等)
如果差的不多
分压电阻存在误差,计算也就存在误差,要在软件上进行补偿,也就是要校准的。
如果差很多,那么,有可能是你的ADC的配置与初始化不正确