Introduction: Arduino Jeopardy Buzzer With LCD Screen
Welcome to this Instructable. With all of the recent news of a new Jeopardy Host on the horizon, I wanted to play Jeopardy at home with my friends and family.
When playing with friends, we first tried to use buzzers that you could find at the store. The problem with these is that it's up to the host's judgement to guess who buzzed in first, and there's also no way to reliably enforce a "no early buzzing in" rule.
I wanted to create a Jeopardy-in-a-box using an Arduino which would read buzzer inputs and reliable report out who was the first contestant to buzz in. Along the way, I also added functionality that penalizes contestants who try to buzz in early by putting a delay on their buzzer readings.
Depending on what components you have on hand at home this project can be done very cheaply.
Supplies
- An Arduino Board ( I used an Arduino Nano knock-off by Elegoo) Link here
- (5) LEDs (preferably different colors for easy differentiation)
- 10 resistors (I used 1kohm, but really anything between 100ohm - 10kohm should work fine)
- 16x2 LCD Screen with I2C board: Link here
- (5) Momentary Push Button Switches: Link here
- Project Enclosure. I used this from Amazon. I would suggest to get a larger enclosure than this - I made this one work but it was really tight to fit everything in.
- 2' - 3' of 1/2" PVC Pipe : Can be found at any big box hardware store
- (5) 1/2" PVC Pipe End Caps : Can be found at any big box hardware store
- 12' of RCA Cable: Link here
- (5) RCA Female Socket Connectors: Link here
- Gorilla Glue or equivalent
- 18gauge wire
- Protoboard: Something like this
Other Equipment
- Soldering Iron
- Dremel Tool
- Drill with various drill bit sizes
Step 1: Create the Buzzers
RCA Cables are a great, cost-effective solution for buzzers for the jeopardy game. For previous projects I had some extra cables from old VCRs and gaming consoles that I would use. This time I had to buy some online but this saves a lot of time and makes for easy connections for players! Below are the steps to build the buzzers:
- Take the 12' of each RCA Cable and cut in half. Strip the cut end to reveal the signal wire and the ground wire. This makes six 6' RCA cables that will be the "guts" of our buzzers.
- Take the 2'-3' of PVC pipe and cut into small 4"-6" pieces. Make sure you get (5) total pieces!
- Twist the strands on the stripped side of the RCA cables together. This is going to be one side of our buzzer connection.
- Inside the RCA cable is another smaller wire. Strip this wire to expose the ground wire. This will be the other side of our buzzer connection.
- Take the momentary push buttons and solder short cables to the two ends of the push button.
- Take the PVC end caps and drill small holes small enough to fit the push button cables through but not the actual button.
- Use gorilla glue to secure the button to the end cap.
- Solder the two ends of the push button cables to the two wires in the RCA cable.
- Cover the joints with electrical tape to ensure they don't short to each other.
- Take the PVC pipe and feed through the other end of the RCA (the end with the plug). Pull the wire all the way through and push the pipe into the end cap. Buzzer complete!
Repeat this process for all (5) buzzers.
Step 2: Prepare the Enclosure and Fit the LCD Screen In
The enclosure needs quite a few cuts in it to accommodate the Jeopardy system. Plan your holes carefully! Looking back I am not too happy with how my cuts ended up and wish I measured them out a bit more carefully.
In total you'll need (6) holes on the sides of the enclosure.
- (5) holes for the 5 RCA connectors
- (1) hole to feed in the Arduino Power cable
The top cover will require a large cutout for the LCD screen and (5) small holes for indicator LEDs. I used a Sharpie to carefully measure out how large the LCD cutout needed to be and then used a Dremel to make the cut. For the LEDs I found a simple 1/4" drill bit was the perfect size.
I also installed the LCD in the enclosure at this time. Probably could wait until a later step if you'd like but I used this as a guide for the cutout and once it was in and I was satisfied I left it in there.
Step 3: Install the RCA Female Socket Connectors
With the drilled out holes on the sides of the enclosure, install the female socket connectors.
- Disconnect the nut, washer, and ground tab from the RCA socket.
- Feed the socket through the hole drilled out on the enclosure.
- Re-install the ground tab, washer, and nut on the socket. This should hold the socket in place on the enclosure.
- Repeat for all five RCA sockets.
- Take the ground tabs and solder them all together to start our ground plane for the circuit. We'll need this later.
- Solder a small wire to each of the RCA inputs on the inside of the enclosure. This will later connect to our board to officially connect the buzzers to the Arduino.
Step 4: Optional: Breadboard the Circuit
At this point we will breadboard the circuit to validate the circuit is functioning as expected before we proto-board it and install it in the enclosure. The circuit itself is very simple but there are lots of components that need to connect to a lot of pins.
The basic explanation of the hardware is:
- Pins D8 - D12 connect to our buzzers and act as the 'inputs' to the circuit.
- Pins D3 - D7 are output LEDs that light up to notify which player has buzzed in first
- Pins A4 and A5 connect to our LCD Screen's I2C interface SCL and SDA ports.
Step 5: Set Up Arduino and Import LiquidCrystal_I2C Library
For this step, I will assume the user is familiar with using the Arduino IDE and connecting to a board.
This project uses the LiquidCrystal_I2C Library to simplify communication with the LCD screen. To add this library to use in your IDE, in the Arduino IDE go to Sketch --> Include Library --> Manage Libraries. Once you're here, you can search for LiquidCrystal_I2C. Download the library.
Next, copy in the provided Arduino code into your IDE.
Here is a basic summary of how the code works.
The code switches through various "game states" that is goes through. The game flow can be summarized as follows:
- Screen turns on and flashes welcome screen. Waits for host to press their button
- Host presses button and screen updates stating that the host can now ask the question.
- Host asks question and presses their button again
- After host presses the button is step 3, Player 1-4 buzzers are LIVE. First player to buzz in gets their LED lit up and the screen updates indicating the winner.
- Host Presses button again and go back to State #2. Repeat.
In addition to this, during Step 3, if at any point Player 1-4 pushes in their buzzer, their buzzer gets "locked out" for 2 seconds. This penalizes early buzzing in and ensure someone isn't just holding down their button waiting for the host to ready-up! This two second penalty can be modified by changing the value in Lines 215, 220, 225, and 230.
Verify no issues with compiling the software. Next, go ahead and grab that Arduino board and flash in the software!
Attachments
Step 6: Build the Circuit!
With the buzzers, enclosure and Arduino board prepared, it's time to build the actual circuit! I used a protoboard to secure the Arduino Board and all resistors to, and short cables to connect the board ports to the different interfaces. I used electrical tape whenever I could to ensure there was proper separation between signals.
For the buzzer connections, recall that the RCA sockets installed on the enclosure are all you need to connect to the actual Arduino board. The ground tabs that were soldered together in Step 3 can be connected to the Arduino Ground Pin, and the individual RCA wires we soldered in Step 3 can connect directly to the board and the Pull-Up resistors.
One last key piece of information is to utilize the cutout from Step 3 to feed the Arduino Power cord through. This will ensure you can still plug in your Arduino after everything is closed up.
Take your time on this step. I did mess up one connection and was scratching my head for a couple hours before I traced back what the problem was. Looking back, I squeezed this project into a very small enclosure and next time I would use a larger enclosure.
Once everything is put together, cover up the enclosure and move on to the next step. Time to play!
Step 7: Play the Game!
Once everything is built up, power up the Arduino and play on! Embedded video was a brief clip put together to verify functionality and also show the game flow (which is also described in Step 5).
I hope you enjoyed this Instructable! Thanks for reading and enjoy the game!