我正在进行多个LED打开并使用多个按钮关闭我正在使用按钮库但isPressed条件无法正常打印所有Serial.println它应该按下按钮后打印。/ p>
我发布我的代码请仔细阅读并提出一些解决方案。
#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一次执行。
答案 0 :(得分:0)
在上面发布的代码中,按钮和LED位于相同的引脚2和3上。它们需要是单独的引脚。
同样是statefull可能会考虑使用uniquePress()代替isPressed()。
答案 1 :(得分:0)
如果您正在使用Arduino的内部上拉电阻器(以及最新的Button.h库),则
Button pBtn1 = Button(2,PULLUP);
使用
Button pBtn1 = Button(2,BUTTON_PULLUP_INTERNAL);