A classic Simon Says memory game built for Arduino microcontrollers! Test your memory by repeating increasingly complex sequences of colors and sounds.
- Two Difficulty Levels: Choose between Easy and Hard modes
- Visual & Audio Feedback: LEDs and buzzer provide engaging gameplay
- LCD Display: 16x2 I2C LCD shows game status and scores
- High Score Tracking: Stores best scores in EEPROM memory
- Debounced Button Input: Reliable button detection with interrupt-driven I/O
- Dynamic Sequence Generation: Random sequences grow with each successful round
๐ Complete circuit schematic available: SimonSaysMC_schematic.pdf
- Arduino Board (ATmega328P compatible)
- 4 Colored Buttons: Blue, Red, Green, Yellow (pins 7, 6, 5, 4)
- 4 LEDs: Matching colors (pins 8, 9, 10, 11)
- Buzzer: Active or passive buzzer (pin 3)
- 16x2 LCD Display: I2C interface (SDA/SCL)
- Resistors: Appropriate values for LEDs and pull-up configuration
| Component | Pin(s) |
|---|---|
| Blue Button | D7 |
| Red Button | D6 |
| Green Button | D5 |
| Yellow Button | D4 |
| Blue LED | D8 |
| Red LED | D9 |
| Green LED | D10 |
| Yellow LED | D11 |
| Buzzer | D3 |
| LCD (I2C) | A4 (SDA), A5 (SCL) |
Install the following libraries through the Arduino IDE Library Manager:
- Wire (built-in) - I2C communication
- LiquidCrystal_I2C - LCD control
- EEPROM (built-in) - High score storage
- Clone or download this repository
- Check the schematic - Review
SimonSaysMC_schematic.pdffor wiring details - Install required libraries in Arduino IDE
- Wire up the hardware according to the schematic
- Open
SimonSaysMC.inoin Arduino IDE - Upload to your Arduino board
- Play! Select difficulty and start memorizing sequences
- Power on the Arduino - you'll hear a welcome melody
- Choose difficulty:
- Press Blue for Easy mode
- Press Red for Hard mode
- Watch the sequence: The game will light up LEDs and play tones
- Repeat the sequence: Press the buttons in the same order
- Score: Each successful round adds 1 point and extends the sequence
- Game Over: If you make a mistake, the game ends and shows your score
SimonSaysMC/
โโโ README.md
โโโ SimonSaysMC_schematic.pdf # Circuit schematic
โโโ SimonSaysMC/
โโโ SimonSaysMC.ino # Main game logic and loop
โโโ Display.cpp # LCD display implementation
โโโ Display.h # LCD display class definition
โโโ utils.cpp # Game utilities and functions
โโโ utils.h # Constants, globals, and function declarations
- Interrupt-driven button handling using Pin Change Interrupts (PCINT)
- Linked list data structure for sequence management
- Debouncing algorithm for reliable button detection
- EEPROM storage for persistent high scores (separate slots for each difficulty)
- Object-oriented design with Display class abstraction
This project is open source and available for educational purposes.