This is an old revision of the document!
Author: Necula Mihail
Group: 333CA
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.
The hardware is divided into four main functional blocks:
The software is organized into logical modules to ensure maintainability:
| Component | Amout |
|---|---|
| MEGA 2560 Development Board (16U2) | 1 |
| DFPlayer Mini MP3 Player Module (TF-16P) | 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 Buttons (12x12x7.3mm) | 3 |
| Encoder Module | 1 |
| 5mm Common Cathode RGB LED | 1 |
| 220 Ω 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 |
| 10 cm Male-to-Male Jumper Wires | ? |
| 10 cm Female-to-Female Jumper Wires | ? |
| 20 cm Male-to-Male Jumper Wires | ? |
| 20 cm Female-to-Male Jumper Wires | ? |
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.