我一直在尝试编写一段代码,以便在一定时间耗尽时按下按钮时基本上为分数添加分数。我发现的问题是,当时间减少时,它不会检测到何时按下按钮,事实上,它只能检测到时间何时开始减少,然后按钮处于哪种状态并不重要继续增加分数。无论如何,这是主要代码:
void loop() {
buttonState01 = digitalRead(button01);
buttonState02 = digitalRead(button02);
buttonState03 = digitalRead(button03);
if (buttonState01){
time = 3000;
while(time > 0){
if (buttonState02){
score += 10;
Serial.println(score);
}
time--;
Serial.println(time);
}
}
}
如果需要的话,这里是完整的代码:
int button01 = 4;
int button02 = 3;
int button03 = 2;
int buttonState01 = 0;
int buttonState02 = 0;
int buttonState03 = 0;
float time;
int score;
void setup() {
score = 0;
time = 0;
pinMode(button01, INPUT);
pinMode(button02, INPUT);
pinMode(button03, INPUT);
Serial.begin(9600);
}
void loop() {
buttonState01 = digitalRead(button01);
buttonState02 = digitalRead(button02);
buttonState03 = digitalRead(button03);
if (buttonState01){
time = 3000;
while(time > 0){
if (buttonState02){
Serial.println("Points");
}
time--;
Serial.println(time);
}
}
}
最佳答案
您应该读取 while 循环内按钮的状态。像这样:
while(time > 0)
{
buttonState02 = digitalRead(button02);
if (buttonState02){
Serial.println("Points");
}
time--;
Serial.println(time);
}
并且在您的代码中,没有为分数添加分数的逻辑。
关于c - Arduino:检测 while 循环内按下的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43654042/