10868|15

13

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

AD键盘 [复制链接]

这两天在做AD键盘,关于AD采集后的数据处理,自己有些头痛。刚开始根据键盘数量将采集值均分,考虑到所使用的电阻也肯定有差别,所以出现了有的键值在两个数之间跳动的现象。有同学提议,用数字万用表先测采集到的电压,根据不同的测量值来分配不同按键的AD采集值。这样处理之后,效果确实好了许多。在这里提出来,是想看看,大家是否还有更好的关于AD键盘数据处理的想法,可以提一提,一起学习一下

最新回复

给出个人关于AD键盘的解决方案 1。硬件上, 1.1 显然按键过程中要考虑滤波消抖,一般是选用瓷片电容,电容容量一般为0.01uF~1uF 1.2 你不必须“用数字万用表先测采集到的电压,根据不同的测量值来分配不同按键的AD采集值”,你可以在硬件电路上增加一个校准电路,这样在不同的环境不同的.温度,只要对产品进行校准操作就可以了,显然,这增强了你的键盘的鲁棒性。 2。 软件上,时间延迟滤波是必须的,然后还需要考虑多次采样,举手表决以确定其所代表的键值的方法 模板如下 void delay();//延迟函数 char get_key_value(char ad_value);//这个函数通过对AD采样的结果进行处理,返回键值,其中ad_value是AD采样的值,最快的算法是建立一个查询表 char get_ad_value();//这个函数用于获得ad采样的值,注意不是键值 用着3个函数,我们可以调用get_key_value5次,假设有3次返回的键值是132,又一次返回的是128,有一次返回的是134,我们可以认为此次采样的键值为132, 当然你也可以调用get_ad_value()5次,获得平均值,然后调用et_key_value,求的键值。  详情 回复 发表于 2010-7-19 13:43
点赞 关注

回复
举报

159

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
首先ad采样要多采几个点,然后加上滤波。可以根据电压的区间来区分是那个按键
 
个人签名*我的EMAIL:     sunke9@qq.com  
*我的博客http://blog.ednchina.com/sunke9/
*我网店:https://sunke9.taobao.com/
承接:电子、自动控制产品设计开发;单片机、ARM编程。
 

回复

97

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
多采样几次,去除抖动
 
 
 

回复

6366

帖子

4929

TA的资源

版主

4
 
AD键盘个人感觉不是很实用,采集的键值要在一个范围内判断,不能只判断一个值,由于分压电阻的精度以及按键的抖动,都会使采集的电压值出现波动。

如果对按键进行硬件消抖,并且提高分压电阻的精度。效果会好一些。
 
 
 

回复

223

帖子

0

TA的资源

纯净的硅(高级)

5
 
我觉得楼主还是先把设计的目的和要求说清楚,比如是出于学习目的还是生产项目,如果是学习我觉得楼主说的方法还不错,实测比较准确,电阻的误差就避免了,但是实测也有问题,毕竟温湿度对阻值也有影响,可能会对你的测量有影响;如果是实际生产项目,我觉得这样是不现实的,还是需要再仔细考虑处理方法,比如提高电阻精度、提高AD分辨率,考虑预设程序开机预存储测量键值等

我想问一下楼主是对一个值进行判断还是一个区间呢,有对按键的消抖处理吗,我想如果考虑普通电阻的误差是5%的话,只要你的区间大于这个,且消抖,应该问题不是很大吧?

[ 本帖最后由 crazyk 于 2010-4-22 11:18 编辑 ]
 
个人签名http://ourdev.taobao.com

过去心不可得 现在心不可得 未来心不可得
 
 

回复

277

帖子

0

TA的资源

五彩晶圆(中级)

6
 
一般同批次的电阻差别不会太大,采集过AD之后,划定一个误差区间,在此区间范围之内,就认为是某个按键按下来了。
 
 
 

回复

2948

帖子

0

TA的资源

五彩晶圆(中级)

7
 

键少了还可以。7,8个以上键的话就不要用AD方式了。

还要AD滤波,什么什么,太麻烦。
 
 
 

回复

2771

帖子

0

TA的资源

裸片初长成(中级)

8
 
da
 
 
 

回复

720

帖子

0

TA的资源

纯净的硅(中级)

9
 
总感觉AD键盘不太实用,提高AD的分辨率是个不错的方法,而且提高电阻的精度也会有所帮助,用表测只是不得已而为之!
 
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

10
 
 除非特殊情况,一般不推荐A/D读键的做法,因为这是以牺牲可靠性的代价换取的键数。
 数字电路为什么抗干扰性强,就是因为把每个信号都二值化了,不承认中间结果,在同一时刻下每根线只用于一个信号,于是理想阈值为Vcc/2。
 用A/D方式只读一个键时阈值为Vcc/2,读2个键则阈值变为Vcc/3,依此类推,读n个键时的阈值是Vcc/(n+1)。阈值越小意味着抗干扰性越差。
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(初级)

11
 
答5楼:
首先,我没有做项目,是在学校学习。刚觉到AD键盘并不好用(当然,指的是在数据处理),自己感觉如果能做好,AD键盘也还不错的。项目自己还从来没做过,不知道实际生产中的键盘多是应用的什么键盘。
还有,就是我在对数据处理上,是判定的区间。至于程序上的防抖处理,自己也没怎么做,希望大家也给提供些源程序。
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(初级)

12
 

回复 5楼 crazyk 的帖子

首先,我没有做项目,是在学校学习。刚觉到AD键盘并不好用(当然,指的是在数据处理),自己感觉如果能做好,AD键盘也还不错的。项目自己还从来没做过,不知道实际生产中的键盘多是应用的什么键盘。
还有,就是我在对数据处理上,是判定的区间。至于程序上的防抖处理,自己也没怎么做,希望你也能给提供些意见。
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(中级)

13
 
进来看看。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

14
 
AD什么的,最讨厌了。。
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

15
 

从8位机到32位机轻松过渡的捷径

从8位机到32位机轻松过渡的捷径
http://item.taobao.com/item.htm?id=5874889392

S3C2440,ARM9嵌入式与无线完美结合,无线通信神奇奥妙,无线语音有声有色
http://item.taobao.com/item.htm?id=4739441972

AT91SAM9261,工业级ARM9,嵌入式行业应用,应该简单,稳定,持久
http://item.taobao.com/item.htm?id=4867678084
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 

回复 楼主 radio_xh 的帖子

给出个人关于AD键盘的解决方案
1。硬件上,
1.1 显然按键过程中要考虑滤波消抖,一般是选用瓷片电容,电容容量一般为0.01uF~1uF
1.2 你不必须“用数字万用表先测采集到的电压,根据不同的测量值来分配不同按键的AD采集值”,你可以在硬件电路上增加一个校准电路,这样在不同的环境不同的.温度,只要对产品进行校准操作就可以了,显然,这增强了你的键盘的鲁棒性。
2。 软件上,时间延迟滤波是必须的,然后还需要考虑多次采样,举手表决以确定其所代表的键值的方法
模板如下
void delay();//延迟函数
char get_key_value(char ad_value);//这个函数通过对AD采样的结果进行处理,返回键值,其中ad_value是AD采样的值,最快的算法是建立一个查询表
char get_ad_value();//这个函数用于获得ad采样的值,注意不是键值
用着3个函数,我们可以调用get_key_value5次,假设有3次返回的键值是132,又一次返回的是128,有一次返回的是134,我们可以认为此次采样的键值为132,
当然你也可以调用get_ad_value()5次,获得平均值,然后调用et_key_value,求的键值。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表