什么是开关弹跳?
当我们按下按钮或拨动开关或微动开关时,两个金属部件接触以短路电源。但是它们并不是立即连接,而是金属部件在实际稳定连接之前会多次连接和断开连接。释放按钮时也会发生同样的事情。这会导致错误触发或多次触发,就像多次按下按钮一样。就像从高处掉下弹跳球一样,它不断在表面弹跳,直到静止为止。
简而言之,我们可以说开关跳动是任何开关的非理想行为,它会产生单个输入的多个转换。在处理电源电路时,开关跳动不是主要问题,但在处理逻辑或数字电路时却会引起问题。因此,为了从电路中消除反弹,使用了开关去抖电路。
什么是软件反跳?
反跳也发生在软件中,而编程程序员会增加延迟以摆脱软件反跳。添加延迟会强制控制器在特定时间段内停止,但是添加延迟并不是程序的好选择,因为它会暂停程序并增加处理时间。最好的方法是在代码中使用中断来进行软件启动。Arduino具有防止软件弹跳的代码。
开关反跳方法
首先,我们将演示没有开关去抖动的电路。
弹起按钮时,您还可以在示波器中看到波形。它显示了在按钮切换期间发生了多少反弹。
有三种常用的方法可以防止电路弹跳。
- 硬件反跳
- RC弹跳
- 开关去抖IC
1.硬件反跳
在硬件去抖技术中,我们使用SR触发器来防止电路开关反弹。这是所有方法中最好的反跳方法。
所需组件
- Nand Gate IC 74HC00
- 拨动开关
- 电阻(10k -2nos。)
- 电容器(0.1uf)
- LED
- 面包板
电路原理图
硬件去抖动电路的工作
该电路由两个形成SR触发器的Nand门(74HC00 IC)组成。从电路图中可以看到,无论何时拨动开关切换到A侧,输出逻辑都会变为“ HIGH”。在这里,我们使用了示波器来检测跳动。而且,正如您在以下给出的波形中看到的那样,逻辑以微小的曲线移动而不是弹跳。电路中使用的电阻是上拉电阻。
每当开关在触点之间移动以产生反弹时,触发器便会保持输出,因为“ 0”会从Nand门的输出中反馈。
2。
RC仅由其名称定义,电路使用RC网络来防止开关弹跳。电路中的电容器可以对开关信号的瞬时变化进行滤波。当开关处于断开状态时,电容器两端的电压保持为零。最初,当开关断开时,电容器通过R1和R2电阻充电。
当开关闭合时,电容器开始放电至零,因此反相施密特触发器输入端的电压为零,因此输出变为高电平。
在弹跳状态下,电容器将Vin处的电压停止,直到达到Vcc或Ground。
为了提高RC去抖动的速度,我们可以连接一个二极管,如下图所示。因此,它减少了电容器的充电时间。
3.开关去抖IC
市场上有可用于开关去抖动的IC。一些去抖动IC是 MAX6816,MC14490和LS118。
下面是使用MAX6818进行去抖动的电路图。
因此,在这里我们了解了按钮如何产生开关弹跳效果以及如何通过使用开关弹跳电路来防止这种情况。