首页 文章

Arduino button.isPressed()不起作用?

提问于
浏览
0

我正在做一个多个LED打开并关闭多个按钮,我使用按钮库但isPressed条件不工作它打印所有Serial.println一个接一个应按下按钮后打印 .

我发布我的代码请仔细检查并提出一些解决方案 .

#include <Button.h>

Button pBtn1 = Button(2,PULLUP);
Button pBtn2 = Button(3,PULLUP);

/*LED Lights*/
int pL1 = 2;
int pL2 = 3;

void setup(){
  Serial.begin(9600);

 pinMode(pL1,OUTPUT);
 pinMode(pL2,OUTPUT);
}

void loop(){
  if(pBtn1.isPressed())
  {
     digitalWrite(pL1,HIGH);
     Serial.println("piano1");
  }
  else if(pBtn2.isPressed())
  {
     digitalWrite(pL2,HIGH);
     Serial.println("piano2");
  }
  else
  {
     digitalWrite(pL1,LOW);
     digitalWrite(pL2,LOW);
     Serial.println("no"); 
  }
}

在这里有两个按钮和两个Led灯在按下一个按钮后LED灯应该发光,按下第二个按钮后第二个发光但输出有点奇怪,所有Serial.println一次执行 .

2 回答

  • 0

    在上面公布的代码中,按钮和LED位于相同的引脚2和3上 . 它们需要是单独的引脚 .

    另外,statefull可能想要考虑使用uniquePress()代替isPressed() .

  • 0

    如果你正在使用Arduino的内部上拉电阻(和最新的Button.h库)

    Button pBtn1 = Button(2,PULLUP);
    

    使用

    Button pBtn1 = Button(2,BUTTON_PULLUP_INTERNAL);
    

相关问题