Introducere:
Proiectul realizat este un clap switch. Un clap swicth este un intrerupator ce va fi actionat prin bataia palmelor.
Clap switch-ul va detecta si procesa intensitatea sonora a mediului ambiant. Se vor aprinde trei led-uri, in functie de numarul de batai din palme.
Hardware Design
Pentru realizarea proiectului am avut nevoie de:
-microfon electret
Semnalul analogic captat de catre microfon ajunge pe pinul convertor ADC7 si este convertit la valoare digitala. Transformarea din analogic in digital se realizeaza din software.
-1 tranzistor 2N3904
Circuitul de fata este un circuit de amplificare, iar tranzistorul joaca rolul unui amplificator.
-1 condensator 0.1uF
Rolul condensatorului este de filtrare. Valoarea sunetului trebuie sa fie suficient de mare, adica sa treaca de un anumit prag.
-3 LED-uri
Circuitul are trei iesiri pe portul C, pe pinii PC0, PC1, PC2. Ledurile se vor aprinde si vor lumina intermitent in functie de detectia de zgomot.
-2 rezistente 10K
-1 rezistenta 100K
-3 rezistente 1K
Ca sa realizez amplificarea am nevoie de diferite tipuri de rezistente.
Software Design
Codul scris in C, compilat cu avr-gcc, hexul incarcat prin USB cu ajutorul bootloaderului.
Functia init() este folosita pentru initializare.
In functia init() initializez convertorul analog-digital, astfel incat ceasul ADC sa fie setat la 115.2kHz.
Functia capt() intoarce valoarea citita de la pinul 7.
Citeste de la ADC, asteptand ca conversia sa se finalizeze.
Apoi seteaza pinul ADSC pentru unrmatoarea conversie.
In functia main, setez toti pinii portului C ca pini de iesire. Intr-un while, folosindu-ma de functia read(), captez sunetul, daca se bate din palme. Verific daca nu sunt aprinse toate led-urile si aprind un led, doua, trei in functie de numarul de batai din palme. In cazul in care sunt aprinse toate led-urile le resetez.
Proiectul
Bibliografie/Resurse
alina_pm.rar
http://elf.cs.pub.ro/pm/
http://www.atmel.com/Images/doc2466.pdf
Observatii
La sunete foarte puternice si de durata mai lunga, se pot aprinde mai multe leduri deodata.