Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul realizeaza aprinderea/stingerea cele 3 leduri la acapararea sunetelor peste o anumita limita(ex bataie din palme).
Ideea proiectului mi-a venit in timp ce urmaream un film in care personajul principal intra in camera si aprinde lumina pocnind din degete.
Scopul acestui proiect este acela de a pune in evidenta simplitatea practica a acestei idei si urmareste extinderea la alte obiecte luminoase(neon, becuri cu incandescenta). De asemenea utilitatea sa poate fi extinsa si mai mult: comandarea robotilor printr-o serie bine definita de batai.
Microfonul electret detecteaza sunetul inalt produs de bataia din palme, si il transforma in semnal electric. Tranzistorul este amplifica acest semnal si il trimite microcontrollerului ATMEGA32 pe pinul ADC0. In continuare ATMEGA32 verifica numarul ledurilor aprinse. In cazul in care toate ledurile sunt aprinse, le stinge pe toate, altfel il aprinde pe urmatorul..
schema_hardware.jpg placuta_fata.jpg placuta_spate.jpg
Lista de piese: 3 LED-uri, 3 rezistente 1K, 2 rezistente 10K, 1 rezistenta 100K, 1 microfon electret, 1 tranzistor 2N3904, 1 condensator 0.1uF
Functia init() realizeaza selectia pinului de input (ADC0) si a pinilor de output(directia PC0, PC1, PC2 setata pe 1). Tot aici este setata valoarea prescalerului la 128 si este activat ADC-ul.
Functia get_signal() asteapta, intr-o bucla, sa primeasca ceva pe pinul de input(ADC0), realizeaza conversia analog→digital si returneaza valoarea ADC-ului.
In main, intr-o bucla infinita, citesc valoarea ADC-ului si daca aceasta este mai mare ca o valoare prestabilita prin testarea microfonului, aprind succesiv LED-urile.
placuta_fata1.jpg placuta_fata2.jpg
Rezultatele obtinute au fost cele asteptate si anume la bataia din palme se aprinde succesiv cate un led pana sunt aprinse toate cele 3 LED-uri, iar la urmatoarea bataie se vor stinge toate LED-urile.