我有一个使用arduino的项目,其基本思想是通过一个按钮来增加一个计数器。
我正在寻找的是,一旦按钮被触发很长一段时间,就不会让 counter1 例如增加 1。
那么我如何使用 Arduino 的软件来完成这个任务呢?
最佳答案
一种可能性是使用具有正边沿的中断引脚。您应该使用与按钮并联的电容器来消除抖动。 这是arduino外部中断的引用页面。 External Interrupts in Arduino .
我认为用一些代码示例来描述它很好。如果您对此有疑问,请告诉我。顶部的表格很重要。并非所有引脚都可以用于它。
因此,每次按下按钮都会触发中断(如果选择选项为“高”)。如果按住按钮,则不会触发中断。在中断服务例程中,您递增计数器。
为了消除按钮的抖动,您可以使用例如100 nF 陶瓷电容器(例如 10V)。但去抖可以通过多种方式完成。这是关于与 arduino 一起使用的去抖开关的问题,有很好的答案。 Switch debouncing - would toggle switch still bounce 。还有一个 ISR 应该可以很好地工作。使用它您不再需要硬件去抖。
关于c - 按钮长按后停止计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49057513/