Skocz do zawartości
nanorafa

DIY sterownik dwu (lub więcej) kanałowy lampy LED

Rekomendowane odpowiedzi

Chciałbym tu przedstawić sterownik lampy LED, zbudowany przeze mnie w oparciu o Arduino (a jakże :)).

Rozwiązania w nim przyjęte nie są kopią znanych już pomysłów, choć przyznaję że funkcję do obsługi zegara czasu rzeczywistego zerżnąłem z projektu pokazywanego na forum reefcentral LOL, która zresztą też pewnie była skądś tam ściągnięta...

Arduino ma tę zaletę że przy praktyczne zerowej wiedzy z zakresu elektroniki (mój przypadek) można zbudować coś elektronicznego :). Wymagana jest natomiast znajomość programowania :). Tyle tytułem wstępu.

Pokażę tu wszystkie szczegóły, łącznie z kodem źródłowym, ale emocje będę dawkował na raty, w związku z brakiem weny pisarskiej :).

Tak to wygląda w wersji "prowizorka jest najtrwalsza" :

nq51.jpg

Zdefiniowane są dwa kanały PWM, sterujące oddzielnie dwoma grupami LED (np. białe i niebieskie), przy czym software można zmodyfikować w prosty sposób tak aby obsługiwał większą ilość kanałów - maksymalnie w przypadku kontrolera Atmega 328, na którym jest zbudowane to urządzenie, będzie to chyba sześć kanałów. Pozostaje wtedy tylko kwestia innego podłączenia wyświetlacza z klawiaturą do płytki Arduino (o tym dalej...).

Poprzez menu (przyciskami) można ustawić "parametry" świecenia wybranego kanału LED. A są to: godzina startu, czas rozjaśniania, moc maksymalna kanału, czas świecenia kanału z mocą maksymalną, czas ściemniania/zmierzchu. Na koniec można zdefiniować moc, na której zatrzyma sie proces ściemniania jeśli ktoś życzy sobie aby akwarium było jeszcze lekko podświetlane wieczorem/nocą (np. niebieski kanał ustawiony na 3% żeby napasać sobie oczka widokiem fosforyzującego baniaczka przed udaniem sie na spoczynek :) ). Ostatnim parametrem jest godzina całkowitego odłączenia kanału - kiedy rybki idą spać.... Wszystko zamyka się w cyklu 24 godzinnym i jest to pewne ograniczenie...

Wszystkie czasy można ustawić w zakresie do 900 minut, jeśli mnie pamięć nie myli, a użytkownik jest odpowiedzialny za to aby ich suma była mniejsza od 24 godzin LOL :).

Dodałem tu obsługę zdarzenia braku zasilania. W takim przypadku po powrocie zasilania sterownik ustawi jasność kanałów tak aby odpowiadała obecnej porze dnia wynikającej w programu świecenia. Powrót po awarii trwa 1 minutę (kanały są powoli rozjaśniane żeby nie było efektu lampy błyskowej).

W czasie pracy/świecenia kanału można modyfikować jego jasność itp itd, żeby sobie dobrać co się lubi :), tak więc myślę że program jest w miarę elastyczny...

Koszt całego urządzenia wraz wysyłkami elementów z Chin zamknął się w 100zł LOL. Czyli Płytka Arduino + LCD KeyPad shield + RTC clock. Czego chcieć więcej :)

Aha. Ważna sprawa zastosowałem tu zegar RTC z kompensacją temperatury.

Załączam tutaj kod źródłowy do tego ustrojstwa, z zastrzeżeniem że jest moją własnością włącznie z przyjętymi w nim rozwiązaniami (dumie to nazwijmy algorytmami) i można go stosować wyłącznie do zastosowań amatorskich, nie komercyjnych.

Uwaga na pułapkę, archiwum ma rozszerzenie zip ale jest to rar :). Proszę zmienić rozszerzenie jeśli winzip będzie się pluł :).

***********************************************

EDIT:

W toku tematu wrzuciłem wersję "full" z pięcioma kanałami PWM oraz sterowaniem refugium. Tu jest odnośnik do posta:

http://nano-reef.pl/...120#entry708229

***********************************************

sterownik_LED_src.zip

sterownik_v1.1.zip

Edytowane przez nanorafa (wyświetl historię edycji)

Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Coś chyba jednak jest nie tak. Nie potrafię otworzyć kodu. Same założenia mi się podobają. Oczywiście Arduino + dodatki można kupić w podobnej cenie w Polsce. A jeśli nie oryginał, to na pewno któregoś klona.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Uwaga na pułapkę, archiwum ma rozszerzenie zip ale jest to rar %29.gif. Proszę zmienić rozszerzenie jeśli winzip będzie się pluł %29.gif.

Załącznika z rozszerzeniem rar forum nie chciało łyknąć więc starą hakerską metodą zmieniłem go na zip.....

Edytowane przez nanorafa (wyświetl historię edycji)

Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Rozwiązania w nim przyjęte nie są kopią znanych już pomysłów, choć przyznaję że funkcję do obsługi zegara czasu rzeczywistego zerżnąłem z projektu pokazywanego na forum reefcentral

" Copyright 2013 XXXXXXXXXXXX@o2.pl. All rights reserved. " LOL

HAHAHA....

nanorafa, kiedy następny odcinek? już nie mogę się doczekać jak opiszesz jakie to dokładnie elementy trzeba kupić, i jak to pokleić,

dzięki za wstawkę, jak dla mnie to super temat

Edytowane przez zachu (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobra, super, dzięki za uznanie, ale zachu plis, usuń moje nazwisko z cytatu w poście :).


Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

sorki, nie znalem twojego nazwiska, myślałem ze to czyjeś się tam skopiowało razem z kodem haha

weź tam wpisz "open source" czy coś co pozwala do modyfikacji i używania tego bez wnoszenia opłat za prawa autorskie :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@zachu, wszystko git, nie ma problemu :). Z tymi kopirajtami to chodzi tylko oto żeby ktoś sprytny sobie kasy na tym nie trzaskał za moimi plecami :).

Co do meritum, chcę jeszcze porobić zdjęcia jak to jest połączone itp.

W planie jest także dodanie pomiaru temperatury radiatora (ale bez sterowania wiatrakami... bo w tym celu nie widzę). Czujniki temperatury zostały wczoraj zakupione :).

Chciałem się rozpędzić i dodać pomiar pH, ale to może wymagać jednak jakiegoś wkładu inżynierskiego z zakresu elektroniki.....

Co do zakupów, kupiłem coś takiego

1) Arduino

http://www.ebay.com/...=item27d324ae49

ale od użytkownika cool-hobby

2) wyświetlacz, dokładnie z tej aukcji:

http://www.ebay.com/...=item3cc725dbfe

3) Zegar RTC, tu jest aukcja sprzedawcy od którego kupowałem, ale nie ma opcji "kup teraz", trzeba poszukać u kogoś innego:

http://www.ebay.com/...=item4d0da4f634

Edytowane przez nanorafa (wyświetl historię edycji)

Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie popadajmy w paranoję.

Moze obsluga PWM nie jest jednym z podstawowych przykładów w Arduino to wydaje mi sie zeby ktoś chciał na tym zarabiać.

gdybyś zaprojektował PCB to wtedy moze ktoś by sie skusił.

Osobiscie nie kupiłbym gotowego sterownika lamp opartego a zestaw uruchomieniowy. Ani to male ani przystosowane do żadnej z gotowych obudów, ani tym bardziej do zabudowy w lampie.

Tyle w kwestii komercyjnej.

Podoba mi się pomysł z Arduino z innej strony:

dzieki Twojemu zaangażowaniu teraz kazdy moze złożyć taki sterownik bez większych problemów.

Gratuluję.

PS

Iloma bitami sterujesz PWM, jakiej konwersji używasz?

Jak rozwiązałeś problem zapalenia lampy w środku nocy tak zeby sprawdzić czy z akwarium wszystko OK?

Edytowane przez ktomek (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie popadajmy w paranoję...

Rozwiązania są raczej z zakresu algorytmów i sposobów :) niż dedykowanego programowania samej Atmegi czy Arduino, więc w sumie jest chyba co chronić ;), tyle w kwestii "copyrights".

PWM jest na wyjściach 3 i 11, więc jest to podłączone zdaje się do 16-to bitowego zegara nr.2, ale wypełnienie jest 0..255, czyli byłoby to 8mio bitowe...

"problem zapalenia lampy w środku nocy" - o tym nie pomyślałem, w awaryjnych sytuacjach używam latarki jako środka w 100% wystarczającego, ale fakt trzeba to dorobić :).

Edytowane przez nanorafa (wyświetl historię edycji)

Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dla mnie bomba. Jeśli w przyszłości wrócę do ledów, to raczej oprę się na takim rozwiązaniu. Kilka kanałów, proste komponenty i ich dostępność - plus nie skomplikowany montaż, zachęcają do własnoręcznej budowy. Tylko, zależało by mi na sterowaniu wentylatorem - nawet kosztem jednego kanału PWM. W sumie, mi wystarczyły by: biały, niebieski, czerwony - a jeśli było by coś ponad to, chętnie poeksperymentował bym. np. z żółtym i zielonym.. Ale bardziej z ciekawości, niż potrzeby.


125x55x55 ogólnej rafy+50x45x45 konikarium - wspólny obieg "Powered by Twistman" - Twistman OB-200-EXT,  Reaktor Wapnia Calc+ Reactor Medium + DI-500-60, 3x maxspect ethereal , bujane przez maxpect gyre, sterowane przez NEMO

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nanorafa.

Ale przeliczasz to jakos? Procenty? Poza tym uzycie pwm 16bitow to takze odpowiednie skonfigurowanie timera. Pamietales o tym?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do wentylatorów, to tez w pierwszej chwili o tym myślałem, ale jakby spojrzeć na to tak: dajemy 2 wentylatorki zamiast jednego, np revoltec airguard 120mm (18zł), na mniejszym napięciu 8V, które będą wtedy niesłyszalne na małych obrotach, a do tego tylko monitoring temperatury, z ewentualną awaryjną regulacją macy diod kiedy padnie jeden z wiatraczków.

@ktomek

Przeliczam na procenty. "skonfigurowanie timera" biblioteki Ardunio wszystko konfigurują, przy kompilacji, to jest zabawka dla opornych elektronicznie - takich jak ja :).

Edytowane przez nanorafa (wyświetl historię edycji)

Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No widzisz a tu taka niespodzianka :)


Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@nanorafa zainspirowałeś mnie i chyba przy budowie swojego LEDa powalczę sam z tym układem zamiast komuś zlecać. Jeśli mógłbyś podać źródła wiedzy odnośnie programowania tego ustrojstwa które były dla Ciebie najbardziej przydatne to też by było super. Jako laik w zakresie elektroniki będę musiał trochę tej wiedzy zgłębić żeby czegoś nie sfajczyć :whistle:


731450e5ecb50e0ff9c2e1941b208841u392a365.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Właściwie to w google wpisujemy nazwę problemu + dodajemy " Arduino" i wychodzą jakieś strzępki wiedzy.

W moim "softcie" masz już właściwie wszystko gotowe :) .

Aby uzyskać więcej kanałów trzeba inaczej podłączyć wyświetlacz, tak aby zwolnić dodatkowo PINy cyfrowe nr 9, 10 (teraz są wolne tylko 11, 3). Wtedy będziemy mieli cztery kanały PWM na pinach 9,10,11,3 pracujących z częstotliwością 500Hz (zdaje się ;))

Jak to zrobić, jest przykład w tym "spolszczonym" projekcie z reefcentral,gdzie wywołano "konstruktor":

LiquidCrystal lcd(12, 13, 4, 5, 6, 7);

określający do których pinów podłączamy wyświetlacz. Ja użyłem takiego wywołania: LiquidCrystal lcd(8, 9, 4, 5, 6, 7), które jak widać wykorzystuje "cenny" pin nr 9. Niestety jest trochę zabawy z kabelkami - jak w podanych wyżej tematach.

Edytowane przez nanorafa (wyświetl historię edycji)

Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

PWM jest na wyjściach 3 i 11, więc jest to podłączone zdaje się do 16-to bitowego zegara nr.2, ale wypełnienie jest 0..255, czyli byłoby to 8mio bitowe...

Nie miałem styczności z Arduino ale jeśli masz możliwość to użyj minimum 10bitowego PWM.

Kiedyś skleciłem filmik porównujący 8 i 10 bitowy PWM:

https://www.youtube....h?v=H-VaeQ2QLCU

Na wyświetlaczu widać wypełnienie PWM + % świecenia widoczny dla oka.

Przy 8 bitowym PWM skok pomiędzy pierwszymi wartościami wypełnienia powoduje ogromną różnicę w jasności świecenia diody.

Przeliczam na procenty.

A jak to przeliczasz? Czy wypełnienie 128 = 50%? Jeśli tak to pamiętaj, że charakterystyka "widzenia" przez oko jest nieliniowa. Tu masz fajnie to opisane (rys. 3):

http://www.lediko.co...ie_diod_LED/61/

Jak widać 50% widziane przez oko to raptem 25% wypełnienia prostokąta.

Oczywiście można to odpuścić i wiedzieć, że pokazywany % jest liniowy i tyle. Tylko później jak ktoś pyta na ile % chodzi lampa to trzeba mieć świadomość, że czasem podawany % to faktyczna moc lampy a czasem to co widzi oko.

Edytowane przez rpp (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, przeliczam w mocy lampy czyli 128 = 50%. Masz rację, żeby to odwzorować pod "wrażliwość" oka trzebaby zastosować skalę logarytmiczną.


Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wrzuciłem nowszą wersję softu (v.1.1) do oryginalnego postu, przeprowadziłem w nim restrukturyzację menu, a przede wszystkim uelastyczniłem kod, tak aby dodanie większej ilości kanałów sprowadzało się do rozszerzenia rozmiarów dwóch tablic :).

Jak zbiorę siły po upale, dopiszę w końcu instruktarz montażu i instrukcję "użytkownika"


Kostka 100x100x50cm,

Oświetlenie: 12 x 39W, ATI Sunpower

Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055

Obieg: NewJet 4500

Reaktor Ca, DIY

Sól: Tropic Marine Pro Reef, RedSea.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak zbiorę siły po upale, dopiszę w końcu instruktarz montażu i instrukcję "użytkownika"

:thumbsup: do mnie dotarły graty czyt. stara lampa LED DIY którą przypadkowo kupiłem za grosze i będę reanimował :smiling: jak tylko będę miał trochę luźniejszego czasu. W planach mam upchnąć na radiator 600x150mm ile diod wlezie (z aktywnym chłodzeniem) do tego 2xT5 no i prezentowany przez Ciebie sterownik, zobaczymy tylko czy uda mi się te T5 zgrać z LED'ami :dj:


731450e5ecb50e0ff9c2e1941b208841u392a365.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@nanorafa czy mógłbyś mi zdradzić jak podłączyłeś zegar bo ja mam takiego drania http://www.hobbyist....real_time_clock przy podłączeniu jak na schemacie odczytuję datę i czas poprzez Serial.begin(9600) więc zegar jest ok.

Lampkę opieram na zamieszczontm przez Ciebie sofcie i nie mogę go skomunikować z Arduino (odczyt-zapis). Jakbyś mógł pomóc to będę wdzięczny.

EDIT:

Inforamcja dla potomnych, ten zegar ma akumulator nie baterię i trochę mi zajęło zanim doszedłem dlaczego nie mogę odczytać daty. Akumulator był rozładowany w nowym zegarku :whistle: i musiał być podłączony z godzinkę pod włączone Arduino (zasilane z laptopa) żeby osiągnął 3,6V i później wszystko ładnie grało.

Edytowane przez Aleksander (wyświetl historię edycji)

731450e5ecb50e0ff9c2e1941b208841u392a365.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki przypadkowej namowie nanorafy też będę robił sterownik. Mam nadzieję jako laik dam radę :-)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Komarek trzymam kciuki BTW to tu same laiki są :)

Mądre głowy to obmyśliły takie Arduino aby każdy mógł sobie poradzić, a jak coś to pomożemy wedle możliwości.


731450e5ecb50e0ff9c2e1941b208841u392a365.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Spox :-)

zrobiłem lampę, odpieniacz, pudełko przelewowe więc i z tym przy Waszej pomocy dam radę. Lampka świeci bomba, brak jej tylko bajerów :-)

W założeniu jest zrobienie tego na 3 kanały, więc pomoc będzie niezbędna. Cezary mówił że się da, więc trza wierzyć w sukces misji :-)

Edytowane przez Komarek (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Ten wątek jest dość stary. Należy rozważyć rozpoczęcie nowego wątku zamiast ożywienia tego.

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.


  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wchodząc do serwisu Nano-Reef, zgadzasz się na warunki Warunki użytkowania.