我正在做一个多个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 回答
在上面公布的代码中,按钮和LED位于相同的引脚2和3上 . 它们需要是单独的引脚 .
另外,statefull可能想要考虑使用uniquePress()代替isPressed() .
如果你正在使用Arduino的内部上拉电阻(和最新的Button.h库)
使用