我一直在想:为什么您不能仅将电容器连接到按钮上去抖动呢?我一直在想如何减少微处理器的工作量,但是我在设计的PCB上的空间非常有限,所以我不想做一个成熟的去抖动电路,这会使设计复杂化。
模拟此电路 –使用CircuitLab创建的原理图
这是一个示例电路;抱歉,有任何错误(我不擅长使用电容器设计电路)。这甚至行得通吗?对于定位开关,我找不到与现实生活中的匹配的开关,但是它可以在这种情况下使用。该按钮类似于此处找到的按钮。D10
代表Digital Pin 10
,但这并不重要;它只是意味着Arduino输入。我也不知道我需要多大的电容器,所以如果该电路正常工作,我需要多少尺寸?
同样,我只是想简化此过程,以使其易于构建,而不必进行软件反跳。从观察电容器的工作原理来看,这似乎可行,但如果电容太大,也可能会使按钮按下时间更长/延迟。它们通常用于“消除”电源中的噪声,所以这不是“消除”弹跳的类似东西吗?任何使其工作的电路修改(如果需要)也将不胜感激。
1
这里就是我们之前已经讨论过:electronics.stackexchange.com/questions/6884/...
—
安迪又名
您是否意识到只需以至少50毫秒的间隔轮询输入即可对信号进行去抖动?为您的aduino做的工作更少:)
—
Wouter van Ooijen 2013年
50毫秒就可以了-O先生很高兴
—
Andy又名
不,我的意思是间隔至少50毫秒进行一次轮询,并根据检测到的级别执行所需的操作。
—
Wouter van Ooijen
@AnnonomusPerson-在单线程环境中的delay()意味着什么都不会发生。虽然这是一个选择,但另一个选择是做其他有用的工作,直到需要再次检查为止。
—
克里斯·斯特拉顿