Back

Project 3 Reaction Game

divider

Task 1: Circuit

Required components:
  • (3) LEDs
  • (3) 330 ohm resistors
  • (1) 10k ohm resistor
  • (1) push button
Reaction Game Circuit

Task 2: Code

reaction_game.ino
int waitTime;
int startTime;
int reactTime;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(3, INPUT);
}
void loop() {
Serial.println("When the LED turns on, push the button!");
Serial.println("Now, watch the LED. Ready?");
waitTime = random(2000, 4000); //random wait time
delay(waitTime); //delay random wait time
digitalWrite(13, HIGH);
startTime = millis(); //set zero time reference
//loop to wait until button is pressed
while(digitalRead(3) == HIGH) { }
reactTime = millis() - startTime; //calculation of reaction time
digitalWrite(13, LOW); //turn off LED!
if (reactTime <= 215) {
digitalWrite(12, HIGH); //green LED ON
digitalWrite(11, LOW); //red LED OFF
}
else {
digitalWrite(12, LOW); //green LED OFF
digitalWrite(11, HIGH); //red LED ON
}
//display results
Serial.print("Nice job! Your reaction time was ");
Serial.print(reactTime);
Serial.println(" milliseconds");
//short delay before starting again
delay(5000);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
}
divider

Project Complete