Arduino 为什么我按下按钮后无法调用此方法?

Arduino 为什么我按下按钮后无法调用此方法?,arduino,Arduino,我用一个按钮作为切换开关。按下它,它会“填充A”。再次按下它,它会“填充B”。为什么我不能调用我的方法checkButtons\u slow() 以下是我的方法: void checkButtons_slow() { val4 = digitalRead(pushD4); val5 = digitalRead(pushD5); if (val4 == LOW) { ZServo.write(88); } else if (val5 == LOW) { ZServo

我用一个按钮作为切换开关。按下它,它会“填充A”。再次按下它,它会“填充B”。为什么我不能调用我的方法
checkButtons\u slow()

以下是我的方法:

void checkButtons_slow() {
  val4 = digitalRead(pushD4);
  val5 = digitalRead(pushD5);
  if (val4 == LOW) {
    ZServo.write(88);
  } else if (val5 == LOW) {
    ZServo.write(99);
  } else {
    ZServo.write(91); //GUESSED ON 92; SHOULD TECHNICALLY BE 90
  }
}

因此注释掉的
//test:ZServo.write(110)工作。使用
检查按钮时我缺少了什么

如果将
void loop()
更改为此,则可以打开和关闭该方法

void loop() {
  if (digitalRead(3) == LOW) {
    num_presses++;
    delay(500);
  }
  if ((num_presses % 2) == 0) {
    //even
    checkButtons_slow();
  }
  else if(num_presses == 0) {
    ZServo.write(90);
  }
  else {
    ZServo.write(85);
  }
}
这是一种“去弹跳”形式,通常需要在微处理器中执行,微处理器直接轮询输入引脚以确定按钮或开关的状态。
void loop() {
  if (digitalRead(3) == LOW) {
    num_presses++;
    delay(500);
  }
  if ((num_presses % 2) == 0) {
    //even
    checkButtons_slow();
  }
  else if(num_presses == 0) {
    ZServo.write(90);
  }
  else {
    ZServo.write(85);
  }
}