This is an old revision of the document!
Sound Reactive VU Meter este un dispozitiv care răspunde la sunet prin afișarea nivelului de semnal audio în timp real, prin intermediul unor indicatori vizuali (LED-uri), care se vor mișca în funcție de intensitatea sunetului. Acest dispozitiv este util pentru monitoriza nivelului de volum al muzicii sau al altor surse audio într-un mod vizual atrăgător, datorită LED-urilor colorate care se aprind și se stinge în funcție de nivelul de volum al sunetului, creând astfel o reprezentare vizuală a intensității sunetului.
Cele două benzi led vor avea mai multe tipuri de aprindere al beculețelor:
Utilizatorul poate să treacă de la un mod de aprindere la altul prin intermediul unui buton care va cicla prin cele 4 moduri de aprindere. Dacă timp de 10 de secunde nu este detectată nicio apăsare de buton, se va trece automat în următorul mod de aprindere. Pe ecranul LCD va apărea numele modului curent de aprindere al beculețelor și o scară de punctulețe ce vor simula aprinderea led-urilor și vor reprezenta intensitatea sunetului.
Listă de piese
Schema electrica
Codul proiectului a fost dezvoltat în Arduino IDE și am folosit bibliotecile FastLED pentru banda led și LiquidCrystal_I2C pentru afișarea pe ecranul LCD.
Banda led are 4 moduri de afișare care se schimbă fie la o apăsare de buton, fie dupa 10 secunde în care nu a fost detectată nicio apăsare de buton.
În implementare am folosit întreruperi pentru butonul de switch cu ajutorul căruia iteram prin cele 4 moduri de afișare ale led-urilor. Prima apăsare de buton face tranziția de la modul 0 la modul 1, a doua apăsare de buton face tranziția de la modul 1 la modul 2, a treia apăsare face tranziția de la modul 2 la modul 3, iar a patra apăsare face tranziția de la modul 3 la modul 0, astfel reluându-se ciclul.
În cazul în care timp de 10 secunde nu a fost detectă nicio apăsare de buton am folosit TIMER1 pentru a face tranziția către următorul mod de afișare.
De asemenea, în cazul în care este detectată o apăsare de buton timerul este resetat pentru a evita situația în care unul dintre modurile de afișare ar fi durat mai puțin de 10 secunde.
Pe ecranul LCD se afișează în text a modului curent de afișare și o reprezentare vizuala a creșterii intensității sunetului.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.