Prompt Title: Arduino Reaction Time Training

Created 1 year ago
Votes 0
Views 106 times
0

Prompt Detail:

Sure, here's an altered version of the project that uses a 3x3 configuration of push buttons:

Materials:

  • Arduino Uno board
  • Breadboard
  • 9 LEDs
  • 9 push buttons
  • 18 jumper wires

Instructions:

  1. Connect the 9 LEDs to pins 2-10 of the Arduino board.
  2. Connect each push button to pins A0-A2 and 11-13 of the Arduino board. Each button should be connected between its respective pin and the ground pin (GND) on the breadboard.
  3. Connect the breadboard to the Arduino board.
  4. Connect a jumper wire from each LED to the breadboard.
  5. Connect a jumper wire from each button to the breadboard.

Now that the hardware is set up, here's how the project works:

  1. The athlete will be presented with a 3x3 grid of LEDs and push buttons.
  2. The LEDs will randomly light up one at a time.
  3. The athlete's reaction time is measured by the time it takes them to press the correct button after the corresponding LED lights up.
  4. The Arduino board will measure the time it takes for the athlete to press the correct button and display the reaction time on the serial monitor.

To program the Arduino board, you can use the following code:

scss
const int buttonPins[] = {A0, A1, A2, 11, 12, 13}; // the pins that the push buttons are attached to const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; // the pins that the LEDs are attached to const int numButtons = 6; // the number of push buttons int ledIndex; // index of the currently lit LED int buttonIndex; // index of the correct push button long startTime; // time when the LED turns on long reactionTime; // time between LED turning on and button being pressed void setup() { for (int i = 0; i < 9; i++) { pinMode(ledPins[i], OUTPUT); // set the LED pins as output digitalWrite(ledPins[i], LOW); // turn off all LEDs } for (int i = 0; i < numButtons; i++) { pinMode(buttonPins[i], INPUT); // set the button pins as input } Serial.begin(9600); // initialize serial communication } void loop() { ledIndex = random(9); // choose a random LED to light up buttonIndex = ledIndex; // the correct button index is the same as the LED index digitalWrite(ledPins[ledIndex], HIGH); // turn on the LED startTime = millis(); // save the time the LED turned on while (true) { for (int i = 0; i < numButtons; i++) { if (digitalRead(buttonPins[i]) == HIGH && i == buttonIndex) { // if the correct button was pressed reactionTime = millis() - startTime; // calculate the reaction time Serial.print("Reaction time: "); Serial.println(reactionTime); // display the reaction time on the serial monitor digitalWrite(ledPins[ledIndex], LOW); // turn off the LED delay(1000); // pause for 1 second before starting the next round break; // exit the for loop } } if (digitalRead(buttonPins[button
avatar
Ilman
Shared 1 prompt
Created 1 year ago

Leave a Comment