This project implements the popular party game CatchPhrase on an Arduino microcontroller. Players can select categories, guess words, and keep track of scores using physical buttons, an LCD display, and a speaker for sound effects. The first team to reach 7 points wins.
- Multiple Categories: Players can choose from multiple categories of words.
- Random Word Selection: Words are randomly selected within the chosen category.
- Score Tracking: Keeps score for Team 1 and Team 2, displaying it on the LCD screen.
- Winning Condition: The first team to score 7 points wins.
- Sound Effects: Countdown timer and winner sound effects are played via a connected speaker.
- Button Controls:
Go/Stop: Start or pause the game.Next Word: Display the next word.Team 1 Point: Increment Team 1's score.Team 2 Point: Increment Team 2's score.
- Arduino board (e.g., Uno, Nano)
- LCD display (16x2 or similar)
- Push buttons (4 total)
- Speaker
- Resistors for button pull-up configuration (if necessary)
- Connecting wires and breadboard (optional for prototyping)
| Component | Arduino Pin |
|---|---|
| Go/Stop Button | 2 |
| Next Word Button | 3 |
| Team 1 Point | 4 |
| Team 2 Point | 5 |
| Speaker | 6 |
| LCD RS | 7 |
| LCD E | 8 |
| LCD D4 | 9 |
| LCD D5 | 10 |
| LCD D6 | 11 |
| LCD D7 | 12 |
- Arduino IDE (latest version)
- LiquidCrystal library (pre-installed in Arduino IDE)
- Hardware Assembly:
- Connect the LCD display to the specified pins.
- Attach the push buttons to the appropriate pins with pull-up resistors if needed.
- Connect the speaker to pin 6.
- Code Upload:
- Open the provided
.inofile in the Arduino IDE. - Adjust the LCD dimensions if necessary by modifying
lcd.begin(16, 2)in thesetup()function. - Upload the code to your Arduino board.
- Open the provided
- Power the Arduino:
- Use a USB cable or external power supply to power the Arduino.
Schematics file can be found in the schematics directory.
- Power on the Arduino. The LCD will display a welcome message and available categories.
- Use the
Go/Stopbutton to start the game. - Use the
Next Wordbutton to generate a random word within the selected category. - Teams take turns guessing the displayed word.
- Press
Team 1 PointorTeam 2 Pointto award points to the respective team. - The first team to score 7 points wins. The winner sound will play, and the LCD will display the winning message.
- Reset the game by pausing and restarting using the
Go/Stopbutton.
- Add Categories:
- Edit the
categoriesarray and add new word lists in the code. - Update the
wordListsarray andwordCountsarray with the new data.
- Edit the
- Adjust Winning Score:
- Modify the
winningScoreconstant.
- Modify the
- Sound Effects:
- Customize the
playCountdownSoundandplayWinnerSoundfunctions to change the sound effects.
- Customize the
- Ensure all components are properly connected and the buttons are debounced for reliable input.
- Use a compatible LCD size and adjust the code if required.
- Use
PROGMEMfor efficient memory usage on the Arduino.
