Mood Lamp
Introducere
MoodLamp este un obiect decorativ ce consta intr-o lampa din sticla alba mata cu un circuit electric atasat. Acesta va contine un LED RGB cu un anumit pattern initial de culori si care va fi ulterior controlat prin comenzi sonore - batai din palme - receptate de un microfon.
Alimentarea se va putea face atat independent printr-un adaptor DC cat si prin USB.
Descriere generală
Pentru realizarea proiectului am folosit 2 placute suplimentare:
LED-ul va fi controlat prin intermediul microcontroller-ului (de la terminal sau cu ajutorul informatiilor oferite de clapper).
Vor fi folosite 4 conexiuni la microcontroller:
3 pini (PD4, PD5, PD7) pentru placuta cu LED-ul RGB
1 pin (PA7) pentru placuta cu clapper-ul
Hardware design
Lista de piese
Placuta cu LED-ul RGB
RGB LED
rezistente de 510 ohmi
tranzistoare BC337
Placuta cu clapper-ul
microfon
rezistente de 10K, 100K
tranzistoare BC337
condensatoare 0.1uF
Schema electrica
LED-ul RGB
LED cu o lumina de intensitate mare
4 pini - anod comun si cate un catod pentru fiecare din cele 3 chip-uri pe care le cotine (RED, GREEN, BLUE)
pe fiecare canal circula un curent de aproximativ 350mA
tensiunea difera in functie de culoare: 2.5V ~ 3.0V pentru rosu, 3.2V ~ 3.8V pentru verde si 3.2V ~ 3.8V pentru albastru
din cauza sensibilitatii la variatiile de curent, legarea la masa se va face printr rezistori de 510 ohmi
va fi conectat la microcontroller cu ajutorul a 3 tranzistori BC337, cu bazele cuplate la 3 porturi ale acestuia
Clapper-ul
microfonul nu poate fi direct atasat la un pin al microcontroller-ului, deoarece semnalul lui este prea slab si trebuie sa fie amplificat
semnalul este preluat imediat de la colectorul tranzistorului BC337
programul citeste in continuu valoarea amplificatorului analog
in momentul in care zgomotul atinge un anumit nivel, se schimba culoarea
Software design
Dezvoltare software:
Librarii folosite:
- <stdio.h>
- <avr\io.h>
- <avr\interrupt.h>
- <inttypes.h>
Functii implementate:
- pwm_color(char red, char green, char blue) - functia care modifica Output Compare Register pentru fiecare din cele 3 chip-uri ale LED-ului RGB
- PWM_Init2(), PWM_Init1() - functiile care initializeaza timere-le in mod PWM
- ADC_init() - initializarea convertorului analog digital
- get_adc() - preluarea valorii ADC
- get_adc_pin() - selectarea bitului de input pt ADC
Rezultate Obţinute
Concluzii
Cea mai mare problema pe care am intampinat-o a fost gasirea unui LED RGB cu anod comun, si faptul ca Proteus nu are microfon ca sa pot sa simulez clapper-ul. Cel putin, nu in versiunea 6.7. Asa ca - in prima faza - nu am reusit sa implementez partea cu clapper-ul..
In rest, dupa cum ni s-a spus, chiar nu e genul de proiect care poate fi terminat intr-o noapte :) Apar tot felul de probleme: lipituri prost facute, piese legate aiurea, ca sa nu mai zic de erorile de software…
Bibliografie/Resurse