Table of Contents

DARIUS LED Display

Introduction

This project displays the name “DARIUS” sequentially on an 8×8 LED matrix and on a 1602 LCD screen, using an ATmega328P microcontroller. Each button press reveals the next letter of the name on the LED matrix. Two additional buttons control the brightness of the LEDs (increase/decrease intensity).

The idea started from wanting to combine multiple lab concepts (GPIO, I2C, SPI, PWM/timers) into a single cohesive embedded project. The result is a simple but visually engaging embedded system that demonstrates sequential display control, communication protocols, and user input handling.

It is useful as a learning reference for anyone getting started with LED matrices, I2C displays, and button debouncing on AVR microcontrollers. }

General Description

The system is built around the ATmega328P (XMini board). The user presses a button to advance through the letters D → A → R → I → U → S, each rendered as a bitmap pattern on the 8×8 LED matrix driven by a MAX7219. The LCD 1602 (I2C) shows the current letter being displayed. Two separate buttons increase or decrease LED brightness via the MAX7219 intensity register.

Block diagram:

───────>: Signal / data

——-: Passive connection

───────: Power

Modules:

Hardware Design

Components list:

Connections:

MAX7219 ↔ ATmega328P via SPI:

LCD 1602 I2C ↔ ATmega328P:

Buttons:

Schematic:

Software Design

Development environment: PlatformIO (VSCode), platform: atmelavr, board: ATmega328P

Libraries used:

Algorithms and data structures:

Source files: will be completed

Results

will be completed

The project successfully displays each letter of “DARIUS” on the LED matrix sequentially on button press, with real-time brightness control. The LCD correctly shows the current letter label.

Conclusions

will be completed

Source Code and Resources (GitHub)

GitHub repository: will be completed

Repository structure:

Journal

will be completed

Bibliography / Resources

Hardware:

Software: