Poprzedni temat «» Następny temat
Prosty sterownik LED RGB
Autor Wiadomość
GrzesiekG 



Wiek: 26
Dołączył: 11 Sie 2006
Posty: 146
Skąd: Annopol
Wysłany: 2013-04-03, 18:57   Prosty sterownik LED RGB

Witam serdecznie,

ten mały projekcik powstał jako miły przerywnik w studenckiej pracy. Otóż kolega mój, wracając z Lodnynu, znalazł śmietniku (czasami na londyńskich śmietnikach można niezłe, działające rzeczy znaleźć) dwie taśmy LED RGB. Poprosił mnie o uczynienie stosownego "sterownika", który ożywiłby tego kolorowego węża. Dodał na odchodne, że ma generować przyjazny oku efekt, wabiący przedstawicielki płci przeciwnej do jego LansoWozu :mrgreen:

Budowa tego sterownika jest prosta jak budowa cepa: standardowy układ ULN2003 sterowany przez ATtiny2313. Stabilizacja źródłowego napięcia +12V z samochodu za pomocą prostego stabilizatora opartego na jednym tranzystorze i diodzie Zenera 5V6. Całość zmontowana na "uniwersalce". Do tego złącza ARK3 x2. Całość z domowych zasobów elementów elektronicznych.

Układ generuje jeden efekt: płynne przejście między kolorami. Program powstał w czystym C.
Sterowanie odbywa się przez programowy PWM wyzwalany przez przerwanie od Timer'a 0 w trybie CTC.

Układ ULN2003 to 3x dwa równolegle podłączone bufory sterujące, gwarantujące większy prąd kolektora każdego z nich.

W razie zainteresowania mogę udostępnić projekt na AVR Studio 4(.18) + schemat.

Chcę się podzielić tym "maleństwem" głównie by pokazać nowym, że nie zawsze trzeba projektować płytkę w Altiumie, za procesor brać ARMa i stosować wymyślne techniki aby osiągnąć cel.

Enjoy!

Pozdrawiam
GrzesiekG

20130403_193457.jpg
Back...
Plik ściągnięto 133 raz(y) 457,92 KB

20130403_193440.jpg
Front...
Plik ściągnięto 122 raz(y) 399,3 KB

20130403_193418.jpg
Działający układ.
Plik ściągnięto 146 raz(y) 390,84 KB

 
   
     
Artyliusz 



Dołączył: 06 Sty 2013
Posty: 293
Skąd: Z Polski
Wysłany: 2013-04-03, 19:26   

Cały układ zasilacz 5,6V włącznie z LED-ami?

GrzesiekG napisał/a:
Chcę się podzielić tym "maleństwem" głównie by pokazać nowym, że nie zawsze trzeba projektować płytkę w Altiumie, za procesor brać ARMa i stosować wymyślne techniki aby osiągnąć cel.

Ale można w Eagle, bądź w darmowym KiCadzie. Za ARMa lub XMegę się wezmę jak skończę z ATmega8. :wink: Ale to jeszcze potrwa.

Możesz udostępnić kod? Pytam z czystej ciekawości i chęci poznania rozwiązań obojętnie jakie by nie były. :grin:
 
 
     
GrzesiekG 



Wiek: 26
Dołączył: 11 Sie 2006
Posty: 146
Skąd: Annopol
Wysłany: 2013-04-03, 19:50   

Pełny projekt w AVR Studio. Program napisany "na prędce", nie jest więc zoptymalizowany pod względem szybkości lub zajmowanego miejsca.

Efekt polega na płynnym przejściu binarnej kombinacji RGB: 000, 001, 010,..., 110, 111.

Stabilizacja +5V dotyczy tylko ATtiny2313. Do taśmy LED jest doprowadzone +12V (wspólna anoda).

Pozdrawiam
GrzesiekG

LED_RGB_t2313.rar
Projekt kompilowany w AVR Studio 4.18
Pobierz Plik ściągnięto 354 raz(y) 15,1 KB

 
   
     
Artyliusz 



Dołączył: 06 Sty 2013
Posty: 293
Skąd: Z Polski
Wysłany: 2013-04-03, 20:17   

Tak myślałem, że z samochodowego 12V są diody zasilane.
Ciekawy kod, można podejrzeć. :smile:

GrzesiekG napisał/a:
Program powstał w czystym C.

Tak się trochę przyczepię żartobliwie, bo jest bodajże wstawka assemblerowa w formie
Kod:
sei();
 
 
     
GrzesiekG 



Wiek: 26
Dołączył: 11 Sie 2006
Posty: 146
Skąd: Annopol
Wysłany: 2013-04-03, 20:56   

Ma się rozumieć, że autorzy AVR GCC wyręczyli programistów w tych problematycznych kwestiach, jakimi są wstawki _asm (które kłopotliwie się pisze).

Co godne uwagi, w kursie C w EdW, przedstawiono ciekawie opcję pisania bezpośrednich bibliotek w ASM (jako pliki *.S), co może miejscami znakomicie przyspieszyć realizację niektórych zadań.
Sam podjąłem się kiedyś przepisania w ten sposób mojej biblioteki na LCD2x16 - prawie skończyłem, ale studia wymusiły przesiadkę na STM32 w pewnym momencie, więc całość porzuciłem :razz: .

GrzesiekG
 
   
     
Artyliusz 



Dołączył: 06 Sty 2013
Posty: 293
Skąd: Z Polski
Wysłany: 2013-04-03, 21:02   

Dziękuję, że mi przypomniałeś o tyk kursie w EDW, miałem go przerobić, a całkowicie zapomniałem.

Niekiedy widziałem w kodach sei() i cli() wpisane w znacznikach jako czysta wstawka assemblerowa.
 
 
     
dondu 



Dołączył: 24 Maj 2005
Posty: 205
Skąd: Śląskie
Wysłany: 2013-04-03, 23:42   

Drobna uwaga do programu. Używaj ISR() i nowych wektorów przerwań: http://www.nongnu.org/avr...interrupts.html
 
     
GrzesiekG 



Wiek: 26
Dołączył: 11 Sie 2006
Posty: 146
Skąd: Annopol
Wysłany: 2013-04-04, 09:51   

Ooo, dzięki za tą stronkę - na pewno się przyda.

GrzesiekG
 
   
     
michal_rob83 
Nowy na forum


Wiek: 27
Dołączył: 26 Gru 2014
Posty: 3
Skąd: Bydg
Wysłany: 2014-12-28, 20:18   

Witam

Dodam więcej Attiny2313 do RGB to aż zbyt dużo do generowania pwma :) Fajny projekt.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,12 sekundy. Zapytań do SQL: 12