Witam, przedstawiam mój świąteczny projekt choinki światłowodowej. Właściwie jest to przeróbka (diametralna) kupionej kilka lat temu choinki światłowodowej wysokości około 1m. Choinka oryginalnie wyposażona była w lampkę halogenową 10W i silnik wolnoobrotowy (5 rpm, 2W) umieszczone w donicy (średnicy 13 cm i wysokości 12 cm). Ślinik obracał kółkiem z kolorkami jak na załączonym zdjęciu (fot2) co dawało efekt płynnej zmiany kolorów.
Fot2:
Wszystko było ok ale następnego roku zaczęło się burczenie, które początkowo ustawało jak się choinkę przestawiło, ale potem stało się zbyt uciążliwe. Postanowiłem zaprojektować elektroniczne sterowanie kolorkami bez elementów ruchomych i bardziej energooszczędne. Wybrałem diody trójkolorowe superflux RGB. Kupiłem 5 ale nie bardzo dało się to jakoś ładnie ułożyć więc ostatecznie są cztery. Diody RGB są sterowane za pomocą ATmega64A poprzez 2x ULN2803. Całość ma budowę modułową i składa się z czterech płytek (płytka zasilacza, płytka z diodami RGB, płytka z Atmega64A, płytka filtra dolnoprzepustowego).
Zasilanie:
Choinka jest zasilana oryginalnym transformatorem „zadołączonym” (jak to jest napisane na choince) : 12V, 1000mA, AC. Ponieważ transformator daje prąd przemienny wykonałem prosty zasilacz tj. mostek prostowniczy + 2*1000uF + LM7809 + LM7805 + kondy 4*(100nF + 47uF). Jest także bezpiecznik 400mA. Dodałem radiatory dla obu stabilizatorów. Może jest to przesada ale pomyślałem że lepiej dmuchać na zimne:) . Diody RGB są zasilane z 9V a reszta z 5V. fot3:
Moduł wykonawczy:
Diody RGB mają wspólną anodę podłączoną do +9V. Prąd diod G i B jest ograniczony rezystorami do max 20 mA zaś czerwonych do max 30 mA. Każda z 4*3=12 diod jest sterowana niezależnie poprzez 2*ULN2803. Na płytce pcb jest jeszcze miejsce na 4 ledy 3mm (dodałem taką opcję ze względu na wolne linie w ULNach aczkolwiek na razie nie wykorzystywane). fot4:
Sterowanie:
Całością steruje ATmega64A @ 16MHz. Układ jest wyposażony w odbiornik podczerwieni (TSOP31236) i sterowanie choinką odbywa się za pomocą pilota z starego TV wysyłającego dane wg protokołu rc5, na płytce mam tez wlutowane gniazdo dla rfm12 ale nie zbudowałem nadajnika wiec to jest nie wykorzystane. W programie napisana jest także obsługa przycisku na INT5 ale ostatecznie go nie dałem. Płytka z Atmega64 była tak naprawdę zaprojektowana dla wyświetlacza widmowego, ale okazała się dobra do tego projektu. fot5:
Płytka filtra:
Na oddzielnej płytce (uniwersalnej dziurkowanej) zrobiłem dawno temu filtr dolnoprzepustowy na LM324N wg projektu ze strony http://mdiy.pl/analizator-widma-akustycznego-v2/ z której zaczerpnąłem także kod do analizatora. Zainspirowany wyczynami kolegów postanowiłem dodać do tej choinki także efekty światło-dźwięk (właściwie to najciekawsza funkcja wg mnie).
Płytki pcb zaprojektowałem w Eaglu, wykonałem metodą fotochemiczną (positiv 20).
Soft:
Program chciałem napisać w C ale napisany jest w bascomie ponieważ wykorzystałem trochę (sporo) gotowego kodu dla analizatora widma akustycznego (autorstwa: Manekinen & Hunterhouse) napisanego właśnie w bascomie. Do tego dodałem programowy PWM dla każdej diody (tzn. 12 kanałów PWM), obsługę pilota (rc5), losowe miganie z funkcją RND. Programowy 7-bitowy PWM jest zrealizowany na Timerze2 który przepełnia się po 128 zliczeniach co daje ok. 122Hz PWM. Migania nie widać nawet przy małych wypełnieniach. W programie zawarte są cztery tryby płynnej zmiany wypełnień: liniowy (pwm jest inkrementowany do max a potem dekrementowany do min itd.) oraz trzy oparte na wyliczonych i zamieszczonych w programie danych opartych na funkcjach cosinus, moduł z cosinus i na 4-tej potędze. Domyślnie program zaczyna się wg funkcji którą nazwałem Ua_type, czyli moduł z cosinusa (tutaj wypełnienie średnie to ok 36%). W przypadku w liniowej regulacji PWM wypełnienie jest oczywiście większe (50%) ale ze względu na nieliniową charakterystykę ledów właściwie świeci to prawie cały czas na biało (i przygasa). Timer3 obsługuje miganie szybkie (tj. wg programu od 99 ms do 990 ms). Tutaj skorzystałem funkcji RND która generuje pseudolosowe efekty. Za pomocą pilota od TV mogę zmienić tryb migania, włączyć/wyłączyć dany kolor lub całą wybraną diodę RGB. Mogę zmienić szybkość zmiany PWM, zatrzymać zmiany PWM, szybkość migania w trybie który nazwałem „sparkling”oraz załączyć tryb ASA (Acoustic Spectrum Analyzer). Po włączeniu trybu ASA timer2, timer3 oraz timer0 (obsługa rc5) się wyłączają co oznacza ze nie ma powrotu z tego trybu (tylko reset procesora). Nie chciałem aby cokolwiek przeszkadzało temu analizatorowi widma. Jeśli chodzi o ASA to jest to programowa DFT z 32 próbek. Po szczegóły odsyłam do strony: http://mdiy.pl/analizator-widma-akustycznego-v2/. Program zajmuje tylko 18% w Atmega64A wiec można by jeszcze dopisać wiele różnych efektów świetlnych. Może dodam w przyszłym roku teraz nie mogłem się doczekać aby zobaczyć efekty.
fot6-fot15:
Największym wyzwaniem okazało się poskładanie wszystkiego w całość w tej orginalnej doniczce, ale się zmieściło
Chcę podziękować kolegom: KJ (za pomoc dotycząca Atmegi64) oraz shg (za pożyczenie oscyloskopu).
W załączniku program (bascom) i projekty pcb.
Ps. Nie jestem elektronikiem z wykształcenia tylko hobbystą w tym zakresie.
Fajne? Ranking DIY