(15 głosujących) Sam pomysł sterowania trójkolorowymi diodami LED nie jest nowością i był wykorzystywany wielokrotnie: w dwóch opracowaniach Lampki RGB oraz w projekcie Mirlight'a. Tym razem układ współpracuje z taśmą LED RGB, obecnie bardzo popularnym, a zarazem łatwo dostępnym rozwiązaniem do podświetlania sufitów, schodów, luster oraz półek w łazienkach, kuchniach itp. Układ podzielony jest na dwie części: Sterownik pracujący w oparciu o ATtinny2313 (który całości mieści się w wyłączniku podtynkowym), oraz z układu wykonawczego wraz z zasilaczem znajdującego się w większej (ukrytej) puszcze. Obsługa układu jest zrealizowana na jednym impulsatorze z przyciskiem i umożliwia regulację każdego z kolorów niezależnie. Dostępna jest także funkcja płynnej zmiany barw według jednego ustalonego programu z możliwością regulacji szybkości przejść kolorów.
Działanie:Schemat ideowy sterownika znajduje się na rysunku poniżej: Schemat sterownika pokazany jest na rysunku wyżej. Sercem układu jest mikrokontroler U1 (ATtiny2313), który pracuje na wewnętrznym oscylatorze 8MHz (bez dzielnika przez 8). Kondensatory C2 (100uF) i C1 (100nF) stanowią filtr napięcia zasilania. Złącze Prog/out stanowi interfejs programujący a jednocześnie w czasie normalnej pracy jest złączem zasilania i złączem wyjściowym. Wszystkie ustawienia dokonywane są za pomocą impulsatora I1 z wbuwowanym przyciskiem. Kondensatory C3 (100nF) i C4 (100nF) filtrują sygnały na wyjściach impulsatora, poprawiając tym samym jego pracę. Jest to szczególnie ważne gdy impulsator nie jest najwyższej klasy. Dioda D1 (LED RGB) stanowi kontrolkę pracy sterownika, a rezystory R1-R3 (3,3k) ograniczają prąd diod do niewielkiej wartości. Schemat układu wykonawczego/zasilacza znajduje się poniżej: W skład układu wykonawczego wchodzi zasilacz niestabilizowany zbudowany na mostku Br1(6A-10A) i kondensatorze C1 (10000uF) oraz mały zasilacz stabilizowany z układem U1 (7805) i kondensatorami C2 (47uF) i C3 (100nF) do zasilania sterownika. Złącze TRAFO umożliwia podłączenie transformatora o napięciu rzędu 11V AC. Przy doborze transformatora należy zadbać aby napięcie zasilające taśmy LED nie przekraczało 12V. Diody D1*-D3* (1N5408) umożliwiają obniżenie napięcia o około 2V gdyby zaszła taka potrzeba. Rezystor R7 (470R/2W) pomaga rozładować kondensator C1 do zera. Złącze 12V umożliwia podłączenie wspólnych anod kawałków taśmy diodowej. Elementami wykonawczymi są tranzystory T1 - T3 (BUZ11) o dużej wydajności prądowej. Rezystory R1-R3 (10k) ustalają potencjał masy na bramkach tranzystorów w chwili braku podłączenia sterowania do złącza S. Rezystory R4-R6 (330R) stanowią zabezpieczenie, ograniczają prąd w chwili przypadkowych zwarć na płytce. Złącza R, G i B umożliwiają podłączenie poszczególnych sekcji wielokolorowej taśmy LED. Podłączenie układu wykonawczego ze sterownikiem dokonane jest za pośrednictwem złącz S oraz PWR. Budowa:Sterownik z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż sterownika najlepiej rozpocząć od wlutowania wszystkich elementów SMD (razem z procesorem), gdyż łatwo jest to uczynić gdy na drugiej stronie płytki nie ma jeszcze wlutowanych pozostałych elementów. W drugiej kolejności trzeba wlutować diodę D1, impulsator i kondensator C2 (na leżąco). Złącze przeznaczone do komunikacji z układem wykonawczym oraz do programowania dobrze jest zastąpić bezpośrednim wlutowaniem przewodów w płytkę. Taki zabieg jest konieczny jeśli sterownik ma być umieszczony pod klepką wyłącznika dwusekcyjnego, tak jak w projekcie modelowym. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Dla montażu elementów od strony druku pomocny będzie także rysunek montażowy dostępny tutaj Układ wykonawczy można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Układ wykonawczy jest banalny w montażu, a kolejność elementów jest dowolna. Mostek prostowniczy należy dać z dużym zapasem prądu aby zminimalizować nagrzewanie. Jednocześnie wymaga on zastosowania radiatora w postaci blaszki aluminiowej. Mimo tego, że zasilacz niestabilizowany jest rozwiązaniem najprostszym to zdecydowanie polecam zamiast mostka i dużego kondensatora zastosować zasilacz impulsowy stabilizowany o dużej wydajności prądowej. Tranzystory T1-T3 nie wymagają radiatorów. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Wykaz Elementów:Sterownik:1x Enkoder obrotowy, Impulsator z przyciskiem 3x 3,3k 3x 100nF 1x 100uF Elektrolit 1x Dioda LED 1x Mikrokontroler ATTINY2313 Układ wykonawczy/zasilacz:2x Złącze Śrubowe ARK2(podwójne) 5x Złącze Śrubowe ARK3(potrójne) 3x 10k 3x 330R 1x 470R/2W 1x 100nF 1x 47uF Elektrolit 1x 10000uF/16V Elektrolit 3x 1N5408 1x Mostek Prostowniczy 6A 3x BUZ11 1x Stabilizator 7805 Programowanie:Kod Źródłowy został napisany w BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "attiny2313.dat" $crystal = 8000000 'internal RC oscilator Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B00001110 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 8 Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts '********** Konfiguracja uC Koniec ************ '****************** Nazwy ******************* '*********************************************** Rd Alias Portb.7 Gd Alias Portb.6 Bd Alias Portb.5 Rdt Alias Portd.3 Gdt Alias Portd.1 Bdt Alias Portd.2 I1 Alias Pind.4 I2 Alias Pind.5 Isw Alias Pind.0 '************* Nazwy Koniec *************** '****************** Zmienne ******************* '*********************************************** Dim Licznik As Byte Dim Rgb(3) As Byte Dim Rgb2(3) As Byte Dim Pomoc As Byte Dim Flaga As Bit Dim Dzielnik As Word Dim Dzielnik2 As Byte Dim Szybkosc As Byte Dim N As Byte Dim Arg As Word Dim Wartosc As Word Dim Pozycja As Word Dim Rgb_mode As Bit Dim Cur_color As Byte Dim Sw_l As Byte , Sw_f As Byte Dim Tryb As Byte , Rezultat As Integer Dim Autosave As Byte , X As Byte '************* Zmienne Koniec **************** '************ Warunki Poczatkowe *************** '*********************************************** Cur_color = 1 Autosave = 250 Readeeprom X , 1 If X <= 10 Then Rgb2(1) = X Else Rgb2(1) = 1 Readeeprom X , 2 If X <= 10 Then Rgb2(2) = X Else Rgb2(2) = 1 Readeeprom X , 3 If X <= 10 Then Rgb2(3) = X Else Rgb2(3) = 1 Readeeprom X , 4 If X <= 100 And X >= 1 Then Szybkosc = X Else Szybkosc = 1 '******* Warunki Poczatkowe Koniec *********** '************** Petla glowna ****************** '*********************************************** Do Rezultat = 0 Select Case Tryb Case 0: If I1 = 1 And I2 = 1 Then Incr Tryb 'jezeli dwa rozwarte Case 1: If I1 = 1 And I2 = 0 Then Rezultat = 1 Incr Tryb End If If I1 = 0 And I2 = 1 Then Rezultat = -1 Incr Tryb End If Case 2: If I1 = 0 And I2 = 0 Then Incr Tryb Case 3: If I1 = 1 And I2 = 0 Then Rezultat = -1 Tryb = 0 End If If I1 = 0 And I2 = 1 Then Rezultat = 1 Tryb = 0 End If End Select If Rezultat <> 0 Then Autosave = 0 If Rezultat = 1 Then If Rgb_mode = 1 Then Decr Szybkosc If Szybkosc <= 1 Then Szybkosc = 1 Else Incr Rgb2(cur_color) If Rgb2(cur_color) >= 10 Then Rgb2(cur_color) = 10 End If Else If Rgb_mode = 1 Then Incr Szybkosc If Szybkosc >= 100 Then Szybkosc = 100 Else Decr Rgb2(cur_color) If Rgb2(cur_color) >= 250 Then Rgb2(cur_color) = 0 End If End If End If If Flaga = 1 Then 'co 32ms Flaga = 0 'autosave If Autosave < 250 Then Incr Autosave If Autosave = 250 Then X = Rgb2(1) Writeeeprom X , 1 X = Rgb2(2) Writeeeprom X , 2 X = Rgb2(3) Writeeeprom X , 3 X = Szybkosc Writeeeprom X , 4 End If End If 'animacja If Rgb_mode = 1 Then Incr Dzielnik2 If Dzielnik2 >= Szybkosc Then Dzielnik2 = 0 Rdt = 0 Gdt = 0 Toggle Bdt Incr Pozycja If Pozycja = 900 Then Pozycja = 0 Gosub Pozycja_do_rgb End If Else For N = 1 To 3 Rgb(n) = Rgb2(n) * Rgb2(n) Next N Select Case Cur_color Case 1 : Rdt = 1 Gdt = 0 Bdt = 0 Case 2 : Rdt = 0 Gdt = 1 Bdt = 0 Case 3 : Rdt = 0 Gdt = 0 Bdt = 1 End Select End If 'switch w impulsatorze If Isw = 0 Then If Sw_l < 100 Then Incr Sw_l If Sw_l = 4 Then Sw_f = 1 If Sw_l = 50 Then Sw_f = 2 End If Else Sw_l = 0 If Sw_f = 1 Then Sw_f = 0 Incr Cur_color If Cur_color = 4 Then Cur_color = 1 End If If Sw_f = 2 Then Sw_f = 0 Toggle Rgb_mode End If End If End If Loop End '************ Petla glowna Koniec ************** '************ Przerwanie timer 0 *************** '*********************************************** Prztimer0: Timer0 = 128 Incr Licznik If Licznik = 100 Then Licznik = 0 If Licznik >= Rgb(1) Then Reset Rd Else Set Rd If Licznik >= Rgb(2) Then Reset Gd Else Set Gd If Licznik >= Rgb(3) Then Reset Bd Else Set Bd Incr Dzielnik If Dzielnik = 250 Then Dzielnik = 0 Set Flaga End If Return '******** Przerwanie timer 0 Koniec ************ '************ Inne Etykiety *************** '*********************************************** Przelicz: 'funkcja \_ _ _ _/^^^ If Arg > 899 Then Arg = Arg - 900 If Arg > 100 And Arg < 500 Then Wartosc = 0 If Arg <= 100 Then Wartosc = 100 - Arg If Arg >= 500 And Arg <= 600 Then Wartosc = Arg - 500 If Arg > 600 Then Wartosc = 100 Return Pozycja_do_rgb: Arg = Pozycja Gosub Przelicz Rgb(1) = Wartosc Arg = Pozycja + 300 Gosub Przelicz Rgb(2) = Wartosc Arg = Pozycja + 600 Gosub Przelicz Rgb(3) = Wartosc Return Na samym początku, przed wejściem do pętli głównej, odczytywane są z pamięci EEPROM wartości nasycenia poszczególnych kolorów (tablica Rgb(1...3)) oraz zmienna Szybkość odpowiedzialna za pracę w trybie animacji (dzielnik do zmiany kolorów). W przypadku gdy wartości te nie należą do założonego przedziału przyjmowane są wartości domyślne. Sterowanie diodami odbywa się na programowym PWM'ie który w całości zrealizowany jest w obsłudze timera0 (procedura Prztimer0). Zmienna Licznik zwiększana jest co przerwanie, cyklicznie od 0 do 99, a następnie porównywana jest z komórkami tablicy Rgb(1..3) odpowiedzialnymi za nasycenie kolorów. W przerwaniu zawarty jest też dzielnik przez 250 ustawiający po przepełnieniu zmienną bitową Flaga. W pętli głównej bezpośrednio włożona jest obsługa impulsatora oraz akcja która jest wykonywana po przekręceniu pokrętła. Gdy układ pracuje w trybie jednego koloru to pokrętłem zmienia się nasycenie barwy, a w trybie animacji zmieniana jest szybkość zmian kolorów. Przycisk w impulsatorze obsługiwany jest w pętli głównej ale z częstotliwością zależną od ustawienia zmiennej Flaga (co 250 przerwań). Krótkie naciśnięcie przycisku zmienia aktualnie ustawiany impulsatorem kolor (w rybie jednego koloru) a dłuższe przytrzymanie zmienia tryb działania (animacja czy pojedynczy kolor). Zmienna Flaga pozwala taktować jednocześnie automatyczny zapis ustawień. Jest on realizowany gdy ustawienia zostaną zmienione i przez kilka sekund nic nie jest zmieniane. Ustawienia fuseitów mikrokontrolera ATtiny2313: Zdjęcia Projektu:
|
|||||||||||||||||||||||||||||||||||||||||
How can you change the
How can you change the brightness of the smooth adjustment to the number of encoder revolutions?
Re: RGB zapis
Zrobiłem tak jak radziłeś jednak co jakiś czas mi zgłupieje, ale prawdopodobnie to kwestia za dużego kondensatora na zasilaniu (za wolno zanika napięcie),jest jeszcze inny problem ponieważ zapis następuje tylko po aktywności przycisków +/- (tych od regulacji),czy można dopisać również autozapis po aktywności przycisku zmiany funkcji animacja/kolor
w chwili obecnej po zmianie trybu anim/kolor muszę jeszcze na chwilę nacisnąć + lub - ,aby nastąpił autozapis
Re: RGB
Dopisz poprostu Autosave = 0 w miejscu gdzie zmienia się RGB_mode:
------------------------
1. encoder change values of Rgb(x), from 0 to 10
2. calculated PWM value is equal : Rgb(x) * rgb(x) (0, 1, 4, 9, 16.... 100) which gives linear brightness regulation
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
RGB LED wspólna KATODA
Jaki zastosować tranzystor dla diody RGB ze wspólną katodą (-) ?
Czy to ma być P-MOSFET ?
I czy w tym przypadku do Źródła (S) podłączamy np +12V a sterowanie Bramką (G) odbywa się niskim poziomem z uC?
Podaj jak możesz odpowiednik BUZ11 dla diody z wspólną katodą.
RE: LED
Mosfet P to np IRF9540 lub 9520 itp. Wpisz na allegro mosfet P to znajdziesz różne popularne tranzystory jakie można dostać. Prolem jest z tym że jak podłączysz +12V na źródło i bramkę bezpośrednio d procka to tranzystor będzie zawsze otwarty. Otwiera się napięciem około 2-3V względem źródła czyli przy 9V lub mniej powinien być już otwarty. Trzeba albo dać drugi tranzystor npn i dwa rezystorki żeby zrobić pull-up bramki do +12V i tranzystorkiem npn zwierać bramkę do masy.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Sterownik Taśmy LED RGB
witam, w związku z widocznym przechodzeniem kolorów w animacji pod koniec ściemniania(skokowe,a nie płynne)czy jest możliwość zwiększenia ilości kroków ściemniania. W tej chwili ściemnianie od 0 do 100% odbywa się w 8 krokach (lub 10, nie pamiętam),a gdyby zwiększyć do 16 (20) widoczny efekt na pewno byłby już niewidoczny.Co należy poprawić w programie?
tranzystory
mam w domu IRF840 mogę je zastosować??
Re: RGB
IRF840 powinny być ok
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Mirley jak sprawuje się układ
Mirley jak sprawuje się układ wykonawczy na BUZ11 i PWM ? Potrzebuje taki układzik zrobić,ale widzę na necie,ze tak nie powinno być.Mogę go zastosować bez obaw?
diody i spadki napiecia.
Dzien dobry,
Na wstepie chcialbym podziekowac Tobie za zamieszczenie tego projektu bardzo mi sie przyda jednak mam jedno pytanie zwiazane z zasilaniem +12V tasmy LED.
Wybrales diode 1n5408. moja tasma led to .5 m tasma led rgb ktora traci 6W mocy i jest zasilana napieciem 12v.
wynika z tego ze opornosc tej tasmy wynosi 24 ohm i ze poplynie przez nia prad .5A jezeli dobrze wnioskuje (przez cala).
czy aby dobrac ilosc diod 1n5408 powinienem sugerowac sie ds 1n5408 i odczytac spadek napiecia na tej diodzie dla wartosci 0.5A (z wykresu funkcji pradu przewodzenia od napiecia przewodzenia) ? moglbys napisac jak sam to zrobiles? doswiadczalnie? czy moge zrobic to w ten sposob ze podlacze do ukladu opornik o rezystancji 24 ohm (moze byc wypadkowa z pol rownoleglego) o mocy powiedzmy 10W bo takie mam i sprawdzic jakie jest wtedy napiecie na wyjsciu +12v wzgledem masy? z gory dziekuje Tobie za pomoc.
Re: listwa led
Ten układzik z BUZ11 co masz wyżej działa do ledów i nie widzę powodu żeby nie działał z czyms innym, chyba że częstotliwość będzie jakaś wyjątkowo duża.
---------
Diody w szeregu dobrałem doswiadczalnie i więcej tak bym nie robił tylko zastosował zasilacz 12V do ledów (i nie stosował tych diod i mostka prostowniczego), który da się kupić za kilka złotych. Trafo jest na pewno droższe i nie ma stabilizacji napięcia.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
dzieki za odpowiedz o tym
dzieki za odpowiedz o tym zasilaczu. ja dobralem tez eksperymentalnie ilosc diod w szeregu do swojego obciazenia bo wlasnie douczylem sie ze napiecie zalezy od obciazenia w tym zasilaczu niestabilizowanym (jestem studentem informatyki nie elektroniki i dopiero raczkuje). mam 12v stabilizowany impulsowy zasilacz juz. moj transformator mimo podobnych parametrow do Twojego wymagal dolozenia 2 diod oprocz tych 3. co do czestotliwosci to nie bede stosowal zbyt duzych zeby tranzysotr nadazal sie wylaczac. jeszcze raz dzieki za odpowiedz.
dzieki z ainfo ja
dzieki z ainfo ja doswiadczalnie robiac musialem wstawic 5 diod mimo parametrow transformatora podobnych do Twojego. juz wszystko gra. dzieki za odp.
Re: Taśma LED
Zrobiłem cały projekt,
Steruję za pomocą STM32.
Jak się okazało po zrobieniu płytki że niestety te tranzystory nie pracują z napięciem 3,3V. Dopiero gdy zasterowałem tranzystor napięciem 5V to zadziałał.
Szkoda że nie wykorzystam tego sterownika.
Chyba że można ten tranzystor zamienić na inny który będzie działał już od 3,3V.
Znasz może jakiś zamiennik bo teraz nie mogę skończyć tego projektu?
Pozdrawiam
Tomek
Re: Tranzystory
Jedynym wyjściem jest zastosowanie tranzystorów bipolarnych w układzie darlingtona, wtedy od 0.6-0.7 powinny działać
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Taśma LED
Zastosuj IRLZ44N. Według noty katalogowej powinien się otwierać już od 2V
Moja strona w powijakach
Sterowanie temperaturą
Witam.
Takie mnie naszło natchnienie. Czy można tak przerobić program i schemat, aby sterować kolorami RGB w zależności od temperatury na czujniku DS18B20?
Konkretnie chodzi mi o "przybajerzenie" Twojej trawiarki. Kilkadziesiąt centymetrów taśmy RGB mogłoby ładnie oświetlić od spodu kuwetę. Kolory, wiadomo: niebieski - zimno, zielony - OK, czerwony - gorąco, żółty - zbyt gorąco (czy jakoś tak). Oczywiście w zależności od ustawionej temperatury.
Mirley, myślałeś o czymś takim? Czy bardzo byłoby to skomplikowane? Pewnie trzeba by, wyeliminować impulsator i użyć większego uC, np. Atmega8?
Andre
Re: RGB
zdecydowanie prościej jest zrobić tą trawiarke na m8 i dopisać do niej ta diode rgb
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
sterownik
Panie Mirku a jak podłączyć diody WS2812 do tego sterownika?Dzięki za pomoc.Ryszard Dzierwa.
Re: jak podłączyć diody WS2812 do tego sterownika?
Nie da się podłączyć diod WS2812 do tego sterownika. Ten sterownik steruje diodami że tak ujmę, wysyłając dane do diod równolegle, natomiast diody WS2812 przyjmują dane szeregowo. Więc program jest zupełnie inny a i podłączenie nie takie samo.
Moja strona w powijakach