Table of Contents

MP3 Player

Author: Necula Mihail

Group: 333CA

Introduction

What does it do?

The project is an MP3 player based on the AVR ATmega2560 architecture. It allows for audio playback, track navigation and smart brightness adjustment via an ambient light sensor.

Other key technical feature is the multi-step speed control (x0.5, x0.75, x1, x1.25, x1.5). The speed adjustment is available only if the audio files are processed and uploaded to the microSD card using my software. The app pre-encodes the tracks at various speeds, allowing the system to switch between files seamlessly.

Additionally, the system features persistent memory. Using the internal EEPROM, the device saves the current volume level and the last played song. This ensures that at restart, the player resumes exactly where it left off.

What is its purpose?

The goal is to provide a convenient, offline and distraction-free listening experience.

What was the initial idea?

The inspiration for this project was nostalgia for the dedicated MP3 player which I used during my childhood.

General description

Block Diagram

Hardware Modules Description

The hardware is divided into four main functional blocks:

Software Modules Description

The software is organized into logical modules to ensure maintainability:

Hardware Design

Bill of Materials

Component Amout
MEGA 2560 Development Board (16U2) 1
3.5mm 3-Pole Male Jack to Terminal Block Adapter 1
VS1053B MP3 Audio Decoder with MicroSD Card Slot 1
10-Pin Extra Tall Male Header - Straight 1
GY-302 Digital Light Sensor (BH1750, I2C) 1
1.3” White OLED Display (SH1106, I2C) 1
Visaton K50 Speaker (50mm diameter, 8 Ω) 1
PAM8403 Stereo Audio Amplifier Module (2x3W) 1
8GB MicroSD Card 1
MB-102 Breadboard (830 Points) 1
AC/DC Power Adapter (5V, 2A, 5.5×2.5mm) 1
Female DC Barrel Jack to Screw Terminal Adapter 1
Tactile Switch Button (12x12x7.3mm) 3
Tactile Switch Cap (for 12x12x7.3mm button) 3
Encoder Module 1
5mm Common Cathode RGB LED 1
220 kΩ Resistor (1/4 W) 3
1 kΩ Resistor (1/4 W) 2
10 kΩ Resistor (1/4 W) 2
1 μF Electrolytic Capacitor (50V) 2
100 μF Electrolytic Capacitor (25V) 2
1000 μF Electrolytic Capacitor (25V) 1
100 nF Ceramic Capacitor (THT, 50V) 4
Clipband 1
10 cm Male-to-Male Jumper Wire ?
10 cm Female-to-Male Jumper Wire ?
20 cm Male-to-Male Jumper Wire ?

Software Design

Input Strategy: Interrupts vs. Polling

A critical design choice was made to balance CPU responsiveness with input accuracy. The system distinguishes between high-speed dynamic signals and slow mechanical transitions.

Results obtained

Conclusions

Download

Repository

Journal

Bibliografy

Hardware

Software

Export to PDF