This is an old revision of the document!


Sistem interactiv de testare a memoriei și reacției cu adaptare la lumina ambientală
Introducere

Acest proiect urmărește realizarea unui sistem interactiv care testează memoria și viteza de reacție a utilizatorului. Sistemul generează o secvență luminoasă aleatorie folosind LED-uri colorate, pe care utilizatorul trebuie să o reproducă apăsând butoanele corespunzătoare.

Proiectul combină mai multe tehnologii și concepte studiate la laborator: controlul intensității LED-urilor cu PWM, măsurarea luminii ambientale cu un senzor LDR prin ADC, afișarea informațiilor pe un LCD folosind I2C și salvarea scorului maxim în EEPROM pentru persistență după resetare.

Ideea a pornit de la clasicul joc „Simon Says”, pe care l-am extins cu funcționalități moderne și utile într-un context embedded educațional. Proiectul este relevant atât ca aplicație practică, cât și ca exercițiu complet de integrare hardware-software, fiind o platformă excelentă pentru învățarea microcontrolerelor și dezvoltarea de sisteme embedded interactive.

Descriere generală

Sistemul este compus din următoarele module:

Un microcontroller (Arduino Uno) care implementează logica jocului, gestionează intrările, ieșirile și comunicarea între componente. Patru LED-uri colorate conectate la pini digitali cu suport PWM, utilizate pentru semnalizarea vizuală a secvenței ce trebuie memorată. Patru butoane tactile care detectează răspunsul utilizatorului la secvență. Un buzzer piezoelectric pasiv, folosit pentru feedback sonor în caz de răspuns corect sau greșit, generat prin PWM. Un senzor LDR conectat la un pin analogic, pentru măsurarea nivelului de lumină ambientală. Citirea valorii se face prin intermediul convertorului analog-digital (ADC) al microcontrollerului. Un ecran LCD 16×2 conectat prin interfață I2C, care afișează în timp real nivelul curent și scorul obținut. Memoria EEPROM internă a Arduino-ului este utilizată pentru salvarea scorului maxim atins, care rămâne stocat chiar și după oprirea sistemului sau resetare. Procesul funcțional este următorul: la pornirea sistemului, se generează o secvență luminoasă aleatorie, aflată la un nivel minim de dificultate. Utilizatorul trebuie să reproducă secvența corect apăsând butoanele aferente. După fiecare răspuns corect, secvența este extinsă, iar intensitatea LED-urilor crește proporțional cu nivelul atins, folosind semnal PWM. În paralel, sistemul verifică lumina ambientală cu ajutorul LDR-ului, iar dacă lumina este scăzută, crește automat intensitatea LED-urilor pentru o vizibilitate optimă. Scorul curent este afișat pe LCD, iar dacă acesta depășește scorul maxim salvat anterior, sistemul îl înregistrează în EEPROM.

Hardware Design

Listă de componente

Arduino Uno R3 (ATmega328P) LCD 16×2 cu modul I2C 4 LED-uri de 5mm (roșu, galben, verde, albastru) 4 butoane tactile de 6x6mm Buzzer piezoelectric pasiv LDR (Light Dependent Resistor) 4 rezistențe de 220Ω (pentru LED-uri) 4 rezistențe de 10kΩ (pentru butoane) 1 rezistență de 10kΩ (pentru divider cu LDR) Breadboard standard Fire jumper (male-male) Cablu USB pentru alimentare și programare

Scheme și diagrame

Concepte aplicate din laboratoare

PWM (Laborator 3): utilizat pentru controlul intensității LED-urilor în funcție de nivelul jocului și pentru generarea de tonuri pe buzzer. ADC (Laborator 4): utilizat pentru a citi valoarea de la senzorul LDR și a ajusta automat luminozitatea LED-urilor în funcție de lumina ambientală. I2C (Laborator 6): utilizat pentru comunicarea cu LCD-ul 16×2, unde sunt afișate scorul și nivelul curent. EEPROM: utilizată pentru salvarea scorului maxim atins, astfel încât să fie păstrat și după resetare sau oprire.

pm/prj2025/avaduva/andreea_irina.iurea.1746995119.txt.gz · Last modified: 2025/05/11 23:25 by andreea_irina.iurea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0