查看: 929|回复: 0
打印 上一主题 下一主题

【原创】新型单线AD键盘,保证稳定

[复制链接]
跳转到指定楼层
沙发
发表于 2016-6-20 19:35:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

原理非常简单,如上图,只要检测AD值便可以知道按下哪个键。不用像其他AD键盘那样对电阻阻值有要求,相对稳定很多,经过制作测试,没有试过误判,制作简单,但写程序时调试时会比较麻烦一点,需要对每个按键的AD值范围进行测量与记录。我自己做了一个30键键盘,测量记录也只用了10多分钟。

测量方法也很简单,编一个小程序,记录AD转换的最大值与最小值用液晶或者数码管显示出来。把键盘输出端接到AVR的AD端,逐个按键按,每个按键都多按几次,直到显示的最大最小值显示不再变化,记录最大最小值,这个范围值便是对应该按键的AD范围值。

记录好每个键的AD范围后,键盘的检测程序只要进行AD转换,然后判断该AD值属于哪个按键的AD值范围便知道是哪个按键。(如果不是对程序效率有很高的要求,请不要判断按键函数时用折半算法,因为用折半算法来写判断按键函数写需要非常大的时间和精力,而且程序容量也大很多很多。我折半算法写过一次,效率是提高了8倍,但耗费了我半天时间,而且可读性和可移植性很低。)

附带问题:
我自己做的30键键盘,用普通1k +-5%的炭膜电阻,实测AD干扰非常严重(不知道是不是因为有干扰),浮动最大有+-15LBS。但这些干扰很确定,每个按键的AD值浮动的范围都不会变,始终会在那个范围里浮动。例如键盘的第一个按键它的AD值范围是1000LBS到900LBS,无论用手机在旁边打电话啊,摆到电源隔壁啊,都是一样没变化。确定好每个键的AD值范围后就很稳定,没有试过检测错键。我不知道这是电路引入干扰还是电路元器件的问题。因为能把这个AD浮动范围缩小的话,就可以增加更加多的按键,现在+-15LBS的浮动范围最多只可以实现33个按键。如果AD浮动范围足够小的话,例如+-5LBS,理论上还可以实现组合键功能。我是一位初学者,请各位高手指点指点。

还有就是阿莫邮购非常好,昨天在阿莫那里订了一大箱元件来做项目,今天就到货,服务一流,元件包装一流!不足的是元件种类少了点,居然没有1%精度的电阻,原本还想买堆回来试下用来做这个键盘效果会不会好一点。-_-|

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表