打印
[AVR单片机]

求助:ATMEGA64位置百分比显示问题

[复制链接]
850|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 | 只看该作者
你加滤波了吗?会不会在最小值那儿抖动,而你存的最小值是固定的,所以稳不住。

使用特权

评论回复
5
ferrotec|  楼主 | 2015-6-23 17:28 | 只看该作者
JY-DX-JY 发表于 2015-6-23 16:54
你加滤波了吗?会不会在最小值那儿抖动,而你存的最小值是固定的,所以稳不住。 ...

是在采样输入与地之间加电容?
104够吗?

使用特权

评论回复
6
JY-DX-JY| | 2015-6-23 17:34 | 只看该作者
我是说软件滤波,取平均,加硬件滤波也可以。你先用104试试。

使用特权

评论回复
7
ferrotec|  楼主 | 2015-6-24 08:58 | 只看该作者
软件滤波加了!

使用特权

评论回复
8
shaoziyang| | 2015-6-24 09:25 | 只看该作者
这应该是电位器的问题,在两端时往往不能正好是最大和最小。如果换一个好一点质量的电位器应该就没有这个问题。

如果不能换,可以考虑软件进行判断,比如将小于1%后认为是0%。

使用特权

评论回复
9
mcu5i51| | 2015-6-24 09:59 | 只看该作者
0和100处一般的电位器都不好用,一般是5-95%的范围就行;

使用特权

评论回复
10
ferrotec|  楼主 | 2015-6-26 12:54 | 只看该作者
shaoziyang 发表于 2015-6-24 09:25
这应该是电位器的问题,在两端时往往不能正好是最大和最小。如果换一个好一点质量的电位器应该就没有这个问 ...

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

使用特权

评论回复
11
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

粉丝