Reaction Time Tester
Intro: Reaction Time Tester
A month ago I knew nothing about Arduino and now.....my first project!
Looking back, this project combines allmost all of the tutorials that I have read in this short period: blinking LED, push button, piezo and LCD display. A useful project for every beginner!
I have made this device for some of my friends who have a hard time admitting how fast alcohol influences their driving abilities.
It will test you on three levels because they all have to do with driving a car safely:
However, driving has to do with making fast decisions as well. So in random order you can get a green or blue light first (or multiples). You should not react to this and hold down the push button until the red light appears.
Finally, on occasions you will hear a short beep in between lights (just for fun). By now you are so tense to do well, that a simple distraction like a beep can and WILL set you off!!
A fun game with your dinner guests upon arrival and confronting upon leaving!
Looking back, this project combines allmost all of the tutorials that I have read in this short period: blinking LED, push button, piezo and LCD display. A useful project for every beginner!
I have made this device for some of my friends who have a hard time admitting how fast alcohol influences their driving abilities.
It will test you on three levels because they all have to do with driving a car safely:
- DECISION time.
- REACTION time
- Resistance to DISTRACTION.
However, driving has to do with making fast decisions as well. So in random order you can get a green or blue light first (or multiples). You should not react to this and hold down the push button until the red light appears.
Finally, on occasions you will hear a short beep in between lights (just for fun). By now you are so tense to do well, that a simple distraction like a beep can and WILL set you off!!
A fun game with your dinner guests upon arrival and confronting upon leaving!
STEP 1: What You Need
- Arduino microcontroller (I have used an Uno).
- 1 RGB LED (you can use 3 separate ones if you like).
- 4 resistors (220 ohm).
- LCD Display
- Piezo speaker
- Breadboard.
- Push button.
- Wires.
- Ping pong ball (optional).
- Box.
STEP 2: The Hardware.
For the experienced Arduino user this total view makes immediate sense. However, if you're a beginner just like me, a breakdown in steps can be useful.
Drawings were made with software by "Fritzing" (http://fritzing.org).
I have used a RGB Led with a common Anode (3 Cathodes: R, G, B). Therefore the setup may seem a bit ackward. The consequence is that in the sketch (step 3): HIGH=off and LOW=on.
Drawings were made with software by "Fritzing" (http://fritzing.org).
I have used a RGB Led with a common Anode (3 Cathodes: R, G, B). Therefore the setup may seem a bit ackward. The consequence is that in the sketch (step 3): HIGH=off and LOW=on.
STEP 3: The Sketch.
As bescribed in the Intro, different lights might appear in random order prior to the red light.
To make the test even more unpredictable, I have added two other features:
To make the test even more unpredictable, I have added two other features:
- The duration of a light is random (within some limits).
- The pause between lights is random as well (within some limits).
You can make the test harder by increasing these intervals. The sketch is in the TEXT file below.
STEP 4: The Box.
This is quite straight forward and I never intended to copy the Instructables Robot, but once I was started, I saw some similarities...
Picture 1: Drill the pattern in the bottom of the box (to hold the Arduino in place). Hole size 3 mm.
Picture 2: Drill and cut two holes in the side for the USB connection and power supply (if you do not need to program the controller anymore and you have chosen to use batteries, you don't need this step. The Arduino is kept in place with small bolts (remove it prior to painting!).
Picture 3: Cut a slot in the lit of the box for the LCD. Drill another two holes, one for the LED (ping pong ball) and another one for the push button. Make sure that the hole for the ping pong ball has a sloping face.
Picture 4: Take two caps of a Coke bottle and cut the top section of the bottle as well. Glue the bottle top sections to the side of the box (make sure you have a nice and flat face for the glue).
Sand the box with a fine sand paper.
Picture 5: Apply several layers of paint (without the Coke caps).
Picture 6, 7, 8: install the Arduino. I have used a small breadboard for the components (Piezo and Pot. meter of the LCD). The LED was solderd seperately. Since the Arduino is tightly bolted into place, foam blocks can be installed against it and thus providing a tight fit for the LCD.
I didn't have red, blue and black wires so I used purple, green and grey:
Purple: +
Green: pin
Grey: Gnd
Picture 1: Drill the pattern in the bottom of the box (to hold the Arduino in place). Hole size 3 mm.
Picture 2: Drill and cut two holes in the side for the USB connection and power supply (if you do not need to program the controller anymore and you have chosen to use batteries, you don't need this step. The Arduino is kept in place with small bolts (remove it prior to painting!).
Picture 3: Cut a slot in the lit of the box for the LCD. Drill another two holes, one for the LED (ping pong ball) and another one for the push button. Make sure that the hole for the ping pong ball has a sloping face.
Picture 4: Take two caps of a Coke bottle and cut the top section of the bottle as well. Glue the bottle top sections to the side of the box (make sure you have a nice and flat face for the glue).
Sand the box with a fine sand paper.
Picture 5: Apply several layers of paint (without the Coke caps).
Picture 6, 7, 8: install the Arduino. I have used a small breadboard for the components (Piezo and Pot. meter of the LCD). The LED was solderd seperately. Since the Arduino is tightly bolted into place, foam blocks can be installed against it and thus providing a tight fit for the LCD.
I didn't have red, blue and black wires so I used purple, green and grey:
Purple: +
Green: pin
Grey: Gnd
68 Comments
paulhschulman 4 years ago
bertus52x11 4 years ago
The box I got form an electronics shop (but it was grey when I bought it.
paulhschulman 4 years ago
CamiCy 8 years ago
bertus52x11 8 years ago
I'm not sure if I understand your question. The reason why there are different lights and beeps is to "throw you off" so you need to watch and listen carefully before releasing the button. Measuring the time between a LED an beep has nothing to do with your reaction time.
CamiCy 8 years ago
If you don't get what im asking its alright. Like i said I'm new at this stuff, but thank you for replying. I appreciate it.
bertus52x11 8 years ago
yes you can, but it requires some slight adaption to the program. In fact you could make two programs and load either one of them into the Arduino without telling the participant. You'll need to register the reaction times depending on the program you use.
CamiCy 8 years ago
cliptwings 8 years ago
Really liked this instructable. I was looking for a reaction tester that I could use for a geocache puzzle and this one fit the bill. I modified the code so once a finder logged a reaction time less than 400 milliseconds, a servo opens a compartment to reveal the treasure and log inside. Works great!
bertus52x11 8 years ago
Post an Instructable about it and I'll send you a patch. (help me remind though).
bertus52x11 9 years ago
Nice one! I have just sent you a patch!
geocacher2 9 years ago
Any updates on the programming? I seem to get into a long loop during a blue or green light press. It sometimes just goes blank, instead of displaying the 'too early'.
bertus52x11 9 years ago
are you sure you've got the coding right? I have never encountered this problem.
freeza36 11 years ago
nirzayorza 11 years ago
bertus52x11 11 years ago
robot1398 12 years ago
bertus52x11 12 years ago
robot1398 12 years ago
ben_cullen_1809 12 years ago