Picture of Reaction Time Tester
A month ago I knew nothing about Arduino and 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:
  • DECISION time. 
  • REACTION time
  • Resistance to DISTRACTION.
The test starts as soon as you hold down the push button. When a red light appears, you should let go off the push button as soon as possible. Your reaction time will appear on the screen.
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!

Remove these adsRemove these ads by Signing Up

Step 1: What you need

Picture of What you need
  1. Arduino microcontroller (I have used an Uno).
  2. 1 RGB LED (you can use 3 separate ones if you like).
  3. 4 resistors (220 ohm).
  4. LCD Display
  5. Piezo speaker
  6. Breadboard.
  7. Push button.
  8. Wires.
  9. Ping pong ball (optional).
  10. Box.

Step 2: The hardware.

Picture of 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" (

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.
1-40 of 62Next »
bertus52x11 (author) 10 months ago

Nice one! I have just sent you a patch!

geocacher2 made it!10 months ago

I modified the program to launch a display when the reaction time is less than 200. I loved the instructable. It was easy to follow and understand. I'll add a couple pictures of my final project (outside pics). The inside is a boarduino, and a tiny piezo speaker. I also added a 6 AA battery tray on the bottom, that is accessable on the outside.

PS - I love the ping pong ball diffuser !

IMG_1120 (2).jpgIMG_1124.JPGIMG_1126.JPG
geocacher210 months 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 (author)  geocacher210 months ago

are you sure you've got the coding right? I have never encountered this problem.

freeza361 year ago
Awesome man! My grandpa made on of these when I was 6 or 7 and I would play with it for hours.
nirzayorza2 years ago
hello. im interested in your project. do you have the schematic diagram for this? thanks in advance.
bertus52x11 (author)  nirzayorza2 years ago
Step 2 shows several diagrams on how to connect the circuit.
robot13983 years ago
whats the unit in which it displays the reaction time?
bertus52x11 (author)  robot13983 years ago
milliseconds (1/1000th sec).
ohk! thanks
hiya pal!! really like the look of this as my uni project! if possible do you have a schematic diagram available??
bertus52x11 (author)  ben_cullen_18093 years ago
just click on the icons below the picture.
freethetech3 years ago
Hi there. This project looks like an amazing beginning to my work with Arduino (it came in on Monday via mail, and I just bought the USB A to B cable today). There is only one problem - I cannot obtain an LCD Display for some time because all of my local stores are out of stock. Any possible substitutions?

One of my ideas would be to rewrite the code (I know the basics of the code) to round everything to the nearest thousandth (reaction time), and then have it go to a corresponding LED.
bertus52x11 (author)  freethetech3 years ago
Sorry for the late reply (holidays). have you tried getting a Display through internet. Shouldn't be too difficult.
You suggestion of rounding off will work. However, you need to really think about how to use the LED, maybe in patterns or even Roman numbers. Otherwise you'll need lots of them!
sbertin3 years ago
what kind of difficulty is this? i haven't done circuitry before
bertus52x11 (author)  sbertin3 years ago
I'm far from an electrical engineer and I have done this as my first Arduino project. It's not too difficult. The nice thing about Arduino is that you don't need to know much about circuitry because al the switches or conditional steps are programmed (instead of using transmitters, capacitors....the whole lot).
If you can tell + from - and you can (learn to) program, there is no limit.
francisroan4 years ago
instead of the lcd i updated the code and added Serial.begin and now i can see the time in the serial monitor!!!!!
bertus52x11 (author)  francisroan4 years ago
Yes, that's very well possible!
francisroan4 years ago
is that serial lcd?
joedibiase4 years ago
This looks like a fun project. I'm new to this kind of thing and am a bit confused about the LED. The LED only has 4 posts (1 anode and 3 cathodes), but in the step-by-step instructional pictures, it looks like there are more posts seated in the breadboard. Would you be so kind as to clarify?

Thanks much!
bertus52x11 (author)  joedibiase4 years ago
Yes, it's fun and it can be confusing (partially my fault). This is what happened:

There are different types of LEDs and I mixed them along the way. I hoped nowbody would notice the inconsistency, but you did!
In the picture of step 2 (with the breadboard), I used a RGB Led with 6 pins:
  • 2 common grounds (you should interconnect them)
  • 1 Red Pin (+5V)
  • 1 Green Pin (+5V)
  • 2 Blue Pin (+5V) you should interconnect these.

You can magnify the picture by clicking on the “i” in the left corner and you’ll see.

Later on I obtained a different LED with 4 pins (instead of 6) and to my own surprise, the system was reversed as well:

  • 1 common Anode (+5V)
  • 1 Green Pin
  • 1 Red pin
  • 1 Blue pin

This is the Led I have used in the reaction Time Tester. Now I went back to step 2 and changed the schemes (Fritzing) accordingly to this new LED. You can see a picture of this Led in step 4 (7th picture).

Hope this helps, if not just let me know.

Thanks for the explanation! We're almost there, but are having a problem with the LED. We've got everything hooked up, but the LED doesn't come on. Here's what's going on ...

- The display says "Hold button to start"
- We press the button and the display goes blank 
-When we release the button, one of two things happens:
     (1) A reaction time is displayed on the display, or,
     (2) There is a beep and the display reads, "Released too soon"

At no time does the LED blink or come on at all.

You can see the picture I uploaded. I checked current with a multi-meter and got these results. On the picture, the lead connecting to Arduino 8 has current as soon as you press the button, and then periodically has current as long as the button is held. The lead connecting to Arduino 6 has current continually. The lead to Arduino 7 has current as soon as the button is pressed, and then has current periodically while the button is held.

As I mentioned, I'm new at this, so am a little baffled. Any help will be much appreciated. Thanks!
LED pic.jpg
bertus52x11 (author)  joedibiase4 years ago
Just a quick one (I'll look into it in more detail this weekend).
How many pins does your push button have? (some types block current when the're pushed, others allow current to flow when pushed). Have you checked this with a multi-meter?
Thanks so much again. I picked up some different LEDs and they work! Must have been something kludgey with the original LEDs.

This works great ... please know that you've made my daughter's 6th grade science fair project very cool!
bertus52x11 (author)  joedibiase4 years ago
Good to hear you solved the problem.
Just one question: if it's the science fair of your daughter, how come Dad is doing all the work? ;-)
Haha! It might seem like Dad is doing all the work, but my daughter did much more than it would appear. She learned a lot about circuits, the Arduino, soldering, and then, how to test a sample of people (how does talking on a cell phone affect reaction time?), then analyzing the results and drawing a conclusion.

We really appreciate your instructable and your following up on our questions!
bertus52x11 (author)  joedibiase4 years ago
Glad I could help. Actually the cell phone test is a very nice one I didn't think of. Some people over here think that driving and phoning do no influence eachother (you just end up doing both things bad!).

From my own experience, I now that the flu has a great impact too.
The button has 4 pins. When we press the button it blocks current.

Thanks for your help ... it's very nice of you. We're getting nervous about my daughter's science project, so your help is really appreciated.
duboisvb4 years ago
Hello again,
I was looking thru old comments and noticed that you said you would send a patch if I made this and published it and reminded you. . Which I did and was wondering if the offer is still good. :)

bertus52x11 (author)  duboisvb4 years ago
duboisvb4 years ago
Hey, I just published an Instructable based on this and I hope I gave you the correct credit . Please advice if I should have done something more . I am new at this. Thanks again.
bertus52x11 (author)  duboisvb4 years ago
No need to worry...
And it looks great!
duboisvb4 years ago
Hey again, here is my project
LucasOchoa4 years ago
just wondering did you get this idea from any kits of any sort and btw are you using parallax or adurnio
bertus52x11 (author)  LucasOchoa4 years ago
No not really, although it's not the first and not the last reaction time tester in the world.
It started quite simple with 1 red Led. Then replaced it with a RGB Led and finally added some sound as well.
It corresponds actually quite well with the tutorials I have been reading while learning Arduino (see Intro).
yeh bro any ways really nice instructable
janw4 years ago
Very nice project! I like the casing.
bertus52x11 (author)  janw4 years ago
Thanks and congrats to you for reaching the finals!
GaryMeow4 years ago
awesome project :)
What is its use in daily life(practical use)?
1-40 of 62Next »