#include <Arduino.h>
const int LED_PIN = 15;
const int BUTTON_PIN = 14;
unsigned long ledOffTime = 0;
unsigned long reactionTime = 0;
bool waitingForReaction = false;
bool buttonPressed = false;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
Serial1.begin(115200);
delay(2000);
Serial1.println("REACTION GAME");
Serial1.println("Game starting in 2 seconds...");
delay(2000);
startNewRound();
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == HIGH && waitingForReaction && !buttonPressed) {
buttonPressed = true;
reactionTime = millis() - ledOffTime;
Serial1.print("Reaction time: ");
Serial1.print(reactionTime);
Serial1.println(" ms");
giveFeedback(reactionTime);
waitingForReaction = false;
delay(2000);
startNewRound();
}
if (buttonState == LOW) {
buttonPressed = false;
}
delay(10);
}
void startNewRound() {
Serial1.println("\nNEW ROUND");
Serial1.println("LED ON - Get ready...");
digitalWrite(LED_PIN, HIGH);
int randomDelay = random(1000, 1000);
Serial1.print("Waiting ");
Serial1.print(randomDelay);
Serial1.println(" ms");
delay(randomDelay);
digitalWrite(LED_PIN, LOW);
ledOffTime = millis();
waitingForReaction = true;
Serial1.println("LED OFF - PRESS BUTTON NOW!");
}
void giveFeedback(unsigned long time) {
}