This is an old revision of the document!
\
Proiectul este un sistem interactiv care testează memoria și viteza de reacție a utilizatorului, combinând afișajul vizual cu feedback sonor. Sistemul generează o secvență luminoasă aleatorie, pe care utilizatorul trebuie să o reproducă corect apăsând butoanele corespunzătoare.
Pe măsură ce nivelul de dificultate crește, LED-urile își modifică intensitatea folosind semnal PWM. În plus, intensitatea LED-urilor este ajustată automat în funcție de lumina ambientală, măsurată printr-un senzor LDR conectat la un pin analogic. Scorul și nivelul atins sunt afișate pe un LCD 16×2 prin comunicare I2C. Scorul maxim atins de utilizator este salvat în EEPROM și păstrat chiar și după resetare.
Scopul proiectului este de a crea o aplicație educativă și interactivă care integrează concepte fundamentale de la laboratoarele de microprocesoare: PWM, ADC, I2C și EEPROM. Este o platformă excelentă pentru învățarea programării microcontrolerelor și interacțiunii cu periferice multiple.
\
Sistemul este construit în jurul plăcii Arduino Uno (ATmega328P) și este format din mai multe componente conectate logic:
* LED-uri colorate ce indică o secvență aleatorie. * Butoane pentru introducerea secvenței de către utilizator. * Buzzer pasiv pentru semnal sonor în caz de succes sau greșeală. * LCD 16×2 cu I2C pentru afișarea nivelului și scorului. * Senzor LDR pentru detectarea luminii ambientale. * Memorie EEPROM internă pentru salvarea scorului maxim.
\
Sistemul pornește prin generarea unei secvențe aleatorii de aprindere a LED-urilor. Utilizatorul trebuie să memoreze această secvență și să o reproducă corect folosind cele patru butoane.
La fiecare nivel reușit, secvența se prelungește și intensitatea LED-urilor crește proporțional, controlată prin PWM. În același timp, în funcție de lumina din mediu, citită cu ajutorul senzorului LDR (prin ADC), sistemul ajustează automat luminozitatea LED-urilor pentru vizibilitate optimă.
În caz de răspuns greșit, buzzer-ul emite un semnal sonor și jocul este resetat. Dacă scorul atins este mai mare decât scorul maxim salvat anterior, acesta este înregistrat în EEPROM pentru a fi reținut permanent.
\
\
* Microcontroller: Arduino Uno R3 (ATmega328P) * Afișaj: LCD 16×2 cu adaptor I2C * LED-uri: 4 LED-uri colorate de 5mm (roșu, galben, verde, albastru) * Butoane: 4 butoane tactile 6x6mm * Buzzer: buzzer piezoelectric pasiv (pentru PWM) * Senzor lumină: LDR (Light Dependent Resistor) * Rezistențe:
* Memorie: EEPROM internă (ATmega328P) * Altele: Breadboard, fire jumper, cablu USB
\
* PWM (Lab 3): utilizat pentru controlul intensității LED-urilor și generarea tonurilor cu buzzer-ul. * ADC (Lab 4): citirea valorii analogice de la senzorul LDR pentru reglarea luminii în funcție de mediul ambiental. * I2C (Lab 6): comunicare cu LCD-ul pentru afișarea nivelului și a scorului. * EEPROM: salvarea scorului maxim în memorie persistentă internă.
\
Proiectul propus integrează concepte esențiale din domeniul microprocesoarelor într-o aplicație practică, interactivă și educativă. Prin combinarea mai multor periferice și tehnologii (PWM, ADC, I2C, EEPROM), proiectul demonstrează capacitatea de a construi un sistem embedded complet, cu feedback vizual și auditiv, adaptabil condițiilor de mediu.