在我们日常生活中,我们常常会使用按键进行操作,比如说手机、电脑、遥控器等等。这些按键的表面看起来很平滑,但是实际上它们都是由一个个金属片或者碳膜组成的。由于按键的物理结构,它们会产生抖动现象,也就是在我们按下按键的瞬间,按键会在操作过程中快速的来回震动。
按键抖动的主要原因是因为金属片或者碳膜在进行接触时,不是一下子完美的接触,而是会产生震动。这种震动是由于接触点的形变,弹性留给了按键足够地动摇,形变产生过程会发生“闭合、断开、闭合”等多种状态,从而导致按键在停止时的震荡。如果不处理这种震荡,它会产生一个抖动信号,在电路中被识别为多次按下动作,引起误读。
为了解决按键抖动产生的问题,现有的解决方案通常采取的方法是消抖。按键消抖的基本方法是添加一个延迟时间,在按键按下后的一段时间内,先让按键震动完毕,然后才将这个响应信号发送给电路。这样可以确保电路只能够检测到一次按键动作,而不会因为抖动信号产生误触发。
有两种方法可以实现按键消抖,机械消抖和软件消抖。机械消抖在电路外添加一个 RC 电路来控制按键被识别的时间,当按键被按下后,电荷从电容器中流出,使得输入电平稳定在逻辑电平上,在稳定的时间之后,按键的输入才被认为是有效的。软件消抖通过程序进行延迟控制,抖动信号被忽略,直到时间结束,再产生一次信号。通常的做法是先检测是否有按键按下,如果有就睡眠一段时间再检测,如果在睡眠期间没有其他按键动作,就可以判断这次按键是有效的操作。
按键抖动是由于按键本身的物理性质所致,消抖的方法是为了防止抖动信号误触发电路。我们可以使用机械消抖或者软件消抖的方法来解决这个问题,让我们的按键操作更加稳定和可靠。