Click the image to watch the gameplay on YouTube.
This project revisits a minimalist Pong-style arcade game built with an Arduino Uno and an 8×8 LED matrix driven by the MAX7219.
Originally developed as an early learning exercise, it has now been refactored with improved structure, cleaner organization, enhanced readability, and a redesigned game-over animation.
The paddle is controlled via a potentiometer, while the ball physics are implemented using discrete position updates combined with deterministic collision detection logic.
Beyond being a compact arcade implementation, the project demonstrates several core embedded systems concepts:
- Analog-to-Digital Conversion (ADC) for real-time input acquisition
- Deterministic control logic for interactive systems
- Collision detection in constrained environments
- SPI-based communication with the MAX7219 LED driver
- Dynamic difficulty adjustment through timing control
- 1 × Arduino Uno
- 1 × 8x8 LED Matrix with MAX7219 driver
- 1 × 10 kΩ potentiometer
- Jumper wires
- Breadboard
The MAX7219 simplifies LED matrix control by handling multiplexing internally and communicating through a SPI-like interface.
| MAX7219 | Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| DIN | D12 |
| CS | D11 |
| CLK | D10 |
| Pin | Connection |
|---|---|
| Left | GND |
| Right | 5V |
| Middle | A1 |
The game logic follows a structured embedded architecture:
- Read paddle position using ADC
- Update ball position based on direction vector
- Detect collisions (walls and paddle)
- Render updated frame
- Adjust difficulty by increasing ball speed
- Trigger animation when game over
- Modular firmware architecture
- Increasing difficulty over time
- Game-over animation
- Clean and optimized rendering logic
- Lightweight and hardware-efficient
Arduino-Led-Matrix-Pong/
│
├── images/
│ ├── driver_max7219.jpg
| ├── game_running.jpeg
│ └── schematic.jpg
|
├── library/
│ └── ledControl
|
├── src/
│ └── pong.ino
|
├── License
|
└── README.md
- Score system
- Non-blocking timing using millis()
- Sound feedback (buzzer)
- Two-player mode
- Angle variation based on paddle impact
This project is open-source and available under the MIT License.
Developed as an embedded systems game project.

