← Back
JULY 15, 2025Completed

AVR Pong Game

Programming an ATmega328P microcontroller


This project recreates the game Pong by programming it directly on a ATmega328P microcontroller using C++. Doing this project was really satisfactory, as it was my first experience programming hardware. I came up with it as my final project for the subject EE 120B.

Play it here!

The approach was to design the logic of each component separately as a state machine and then implementing all together. The logic diagram of the final implementation was the following:

  • Hardware components used

    -Arduino UNO R3 Controller Board (ATmega328P microcontroller)

    -ST7735 LCD (used as primary screen)

    -LCD 1602 (used as secondary screen)

    -x2 Joysticks

    -Button

    -Resistance 10kΩ

  • Wiring Connections

    • ST7735 LCD

        CS: D10
        RESET: D9
        A0: D8
        SDA: D11
        SCK: D13
        LED: 3.3V
      
    • LCD 1602

        V0: potentiometer (10 - 100 kΩ)
        RS: D2
        RW: GND
        E: D3
        D4: D4
        D5: D5
        D6: D6
        D7: D7
        A: 5V
        K: GND 
      
    • Joystick P1: A0

    • Joystick P2: A1

    • Button: A2