gpt4 book ai didi

c - Arduino:检测在 while 循环内按下的按钮

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:45 24 4
gpt4 key购买 nike

我一直在尝试编写一个代码,以便在一定时间快用完时,每当我按下一个按钮时,基本上都会给分数加分。我发现的问题是它在时间减少时没有检测到何时按下按钮,实际上它只能检测时间何时开始减少然后按钮处于哪个状态并不重要继续加分。无论如何,这里是主要代码:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com