int checaRespostaJogador() {
if (digitalRead(BOTAO_VERDE) == LOW) {
return piscaLed(LED_VERDE);
}
if (digitalRead(BOTAO_AMARELO) == LOW) {
return piscaLed(LED_AMARELO);
}
if (digitalRead(BOTAO_VERMELHO) == LOW) {
return piscaLed(LED_VERMELHO);
}
if (digitalRead(BOTAO_AZUL) == LOW) {
return piscaLed(LED_AZUL);
}
return INDEFINIDO;
}
Sobre a função acima, se nenhum botão estiver sendo pressionado todos serão HIGH. Na minha cabeça, a unica maneira de não retornar indefinido é se você estiver mantendo pressionado o botão no exato momento que ela passa no if do botão que você está pressionando. Mas parece que não é assim que acontece, não precisa manter pressionado no exato momento. Na prática, parece que ela espera você apertar o botão para ler os if's, não entendi como isso acontece.