这通常是由于在按下按钮时触发了多次中断引起的。为了解决这个问题,可以使用一个变量来存储上一次按钮状态,然后在每次按下按钮时检查它是否已经被按下。如果它已经被按下,则不会执行任何代码。以下是示例代码:
volatile boolean buttonState = LOW; volatile boolean lastButtonState = LOW;
void setup() { pinMode(2, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(2), buttonPressed, FALLING); }
void loop() { // Your main code here }
void buttonPressed() { buttonState = digitalRead(2);
// If the button was pressed and held down ignore it if (buttonState == HIGH && lastButtonState == HIGH) { return; }
// Otherwise, execute your code here
lastButtonState = buttonState; }
上一篇:按住按钮模拟滚动
下一篇:按专业划分,平均成绩更高的学生