硬件层面如何实现按键消抖

描述

在做硬件设计的时候,按键是最常见的模块之一,也是学硬件的人入坑接触的第一二个实例。

人手在按下按键的时候会有一定频率的抖动,反映在按下和释放的上升下降沿会有信号的反复跳动,如下示意图。单片机在识别IO信号的时候,经常会根据前后电平值来判断是否有跳变,如果在单片机的采样窗口内连续出现反复多次的高低电平,就会影响单片机的判断,采集到多次高低电平信号。不仅是人手主动按,不小心碰到按键也是会存在一定几率的抖动信号,可能导致误触。

硬件设计

不过成熟、高可靠性的按键设计一定不是只有按键,通常我们会看到有并联电容,用来消除按键抖动。抖动不消除会有一定几率造成产品的不良影响,比如按键失灵、响应错误、误触等。

硬件设计

既然电容可以消除抖动,那消抖电容的容值是怎么选的。

首先电容在这里的作用是滤波的,那么滤除什么频率的波就是我们需要考虑的因素了。通过查阅资料,按键抖动的频率一般在100Hz以内,抖动的时间经验值通常在5~10ms,即在这个时间内通常会有多次的跳变信号。

硬件设计

电容两端的电压是不能突变的,充电和放电都会有一个过程,如上图。因此在出现抖动的时候,电容会使其两端的电压缓慢变化,只要在其充放电时间内,抖动能够结束,就能有效消除掉抖动。

硬件设计

也就是说,根据充放电的时间计算,通常选择0.01uF~1uF的电容,就能够消除大部分机械按键的抖动。

相对应的,在产品设计时,软件层面也会做消抖,程序会考虑在第一次接收到电平跳变后delay10ms左右再次做检测,这样也能有效避免误检测。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分