[AVR单片机] 求助:ATMEGA64位置百分比显示问题

[复制链接]
1037|10
 楼主| ferrotec 发表于 2015-6-23 16:13 | 显示全部楼层 |阅读模式
本帖最后由 ferrotec 于 2015-6-23 16:36 编辑

我使用M64的ADC功能将一个电位计变化的阻值以百分比的形式在LCD12864上显示,
               c/(b-a)*100%
c为ADC采集到的电位计数据,b为电位计端点的最大值,a为电位计端点的最小值,a ,b值可以通过ADC采集后保存在EEPROM里面,运行时直接调用,a的值不会为0,有初值。
现在问题是:在1~100%过程中,位置百分比显示都正常,在运行到0%位置时,显示0%后会出现跳变,不能稳定显示0%,这是什么原因,有什么解决办法?
不好意思
   应该是(c-a)/(b-a)*100%
JY-DX-JY 发表于 2015-6-23 16:31 | 显示全部楼层
为0时,必须是C=0,c有可能为0吗?
 楼主| ferrotec 发表于 2015-6-23 16:38 | 显示全部楼层
JY-DX-JY 发表于 2015-6-23 16:31
为0时,必须是C=0,c有可能为0吗?

不好意思!应该是这样的,上面写错了:
(c-a)/(b-a)*100%

c=a时,应该就是0%,就是在0%位置跳变!
JY-DX-JY 发表于 2015-6-23 16:54 | 显示全部楼层
你加滤波了吗?会不会在最小值那儿抖动,而你存的最小值是固定的,所以稳不住。
 楼主| ferrotec 发表于 2015-6-23 17:28 | 显示全部楼层
JY-DX-JY 发表于 2015-6-23 16:54
你加滤波了吗?会不会在最小值那儿抖动,而你存的最小值是固定的,所以稳不住。 ...

是在采样输入与地之间加电容?
104够吗?
JY-DX-JY 发表于 2015-6-23 17:34 | 显示全部楼层
我是说软件滤波,取平均,加硬件滤波也可以。你先用104试试。
 楼主| ferrotec 发表于 2015-6-24 08:58 | 显示全部楼层
软件滤波加了!
shaoziyang 发表于 2015-6-24 09:25 | 显示全部楼层
这应该是电位器的问题,在两端时往往不能正好是最大和最小。如果换一个好一点质量的电位器应该就没有这个问题。

如果不能换,可以考虑软件进行判断,比如将小于1%后认为是0%。
mcu5i51 发表于 2015-6-24 09:59 | 显示全部楼层
0和100处一般的电位器都不好用,一般是5-95%的范围就行;
 楼主| ferrotec 发表于 2015-6-26 12:54 | 显示全部楼层
shaoziyang 发表于 2015-6-24 09:25
这应该是电位器的问题,在两端时往往不能正好是最大和最小。如果换一个好一点质量的电位器应该就没有这个问 ...

没有用到电位计的最大与最小位置,只是在中间取了一段。
电位计是1K欧姆,实际用的是80~900欧姆。
我现在采用了一个极端的方法:在0%的位置采用一个微动开关检测,只要接通,就表明是0%位置到了,然后LCD就显示0%,此时不通过数据采集来显示实际位置,但是还是没有解决问题!
 楼主| ferrotec 发表于 2015-6-26 12:54 | 显示全部楼层
mcu5i51 发表于 2015-6-24 09:59
0和100处一般的电位器都不好用,一般是5-95%的范围就行;

没有用到电位计的最大与最小位置,只是在中间取了一段。
电位计是1K欧姆,实际用的是80~900欧姆。
我现在采用了一个极端的方法:在0%的位置采用一个微动开关检测,只要接通,就表明是0%位置到了,然后LCD就显示0%,此时不通过数据采集来显示实际位置,但是还是没有解决问题!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部