8 X 8 LED Pong With Arduino

Introduction: 8 X 8 LED Pong With Arduino

About: #Innovation #Technology R&D lab of the the world's fastest-growing #media agency. #Creative makers working from a secret location in SG. #leanintochange

By Justin Ou, Creative Technologist (Intern)

This Classic Pong game was created using an Arduino connected to an 8x8 LED matrix. The pong paddles are controlled using a joystick and the game ends when the ball goes past a player’s paddle. As a challenge, the ball increases speed each time a paddle is hit. Restart the game by resetting the Arduino board.

The hardware is setup by following a tutorial on the official Arduino website at http://www.arduino.cc/en/Tutorial/RowColumnScanni...

Step 1: Purchase Materials

Materials needed:

1x 8x8 LED Matrix

1x Arduino UNO

1x Breadboard

2x Joystick

30x Hook-up wires

Step 2: Set Up the Hardware by Following the Circuit Diagram

Connect the hook-up wires to the Arduino pins according the diagram. Instead of potentiometers, you may follow the same wiring configuration to connect the 2 joysticks to the Arduino. Ensure that the wiring are secured to the breadboard.

Step 3: Notes on LED Matrix

An LED Matrix consists of rows of common anodes and columns of common cathodes or vice versa. The pins of the LED matrix are connected to the Arduino or other micro-controllers to set the a row or column to high or low. Consider the schematic above.

With reference the the diagram above, a column must be set to HIGH to turn all any LED in the column. However, an individual LED in the row must be set to LOW to turn it on.

For example, to turn on LEDs in Column 1, set Pin 13 to HIGH and all rows to LOW. To turn on LEDs in Column 1 on Rows 3 and 4, set Pin 13 to HIGH, Pin 8 and 12 to LOW and other rows to HIGH.

Step 4: Upload the Pong Sketch and Test the Game

Access the code

The game should start immediately when the sketch is uploaded. You may control the paddles using the joystick. If the LEDs do not light up correctly, you may try to replace the array of pin numbers for the columns and rows.

Replace lines 3-9 with the following code.

// 2-dimensional array of row pin numbers:

const int row[8] = {

2,7,19,5,13,18,12,16 };

// 2-dimensional array of column pin numbers:

const int col[8] = {

6,11,10,3,17,4,8,9 };

Note: If the LEDs still do not light up correctly, you have to find the correct configuration for the array of rows and columns pin numbers. Do this by removing the wires between the LED matrix and adding it back one at a time. Record the pin numbers appropriately for the LEDs that light up.

Step 5: (Optional) Play Against AI Opponent

Open the sketch in Arduino and go to line 39.

Replace it with the following code:

boolean multiplayer = false;

Upload the sketch again and you may now play against an AI.

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Super-Size Speed Challenge

      Super-Size Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020

    6 Discussions


    2 months ago

    The code isn't uploaded to the site. Please could you upload it.


    1 year ago

    Can u re-upload the code?


    3 years ago

    Hey anyway you can reupload the code?

    Kostas Sarioglou
    Kostas Sarioglou

    4 years ago

    the download link is down please re upload the code


    5 years ago

    Cool! I'm going to make that!