Jump to content
magu

6-kanałowy sterownik LED - AQma LED Control v3 - by magu

Recommended Posts

AQma LED Control, to 6-kanałowy sterownik PWM oświetlenia LED. Na tę chwilę jest w fazie testów doskonale przetestowany, ale wydaje się, że działa bez pudła, więc ląduje na forum.

Zarówno kod do Arduion Nano, jak i aplikacja na Windows napisane są przeze mnie i dostępne za całkowitą darmochę.

Użytkownik może ustawić długość wschodu i zachodu słońca (w minutach), a także minimalną i maksymalną moc jaką będzie sterowana lampa. Zaptaszkowanie kwadratu „Oświetlenie nocne” spowoduje, że w czasie kiedy lampa powinna być wyłączona, zostanie utrzymana wartość minimalna PWM (ta z pola minimum wyrażona w %). Jeżeli ptaszka nie ma, PWM zostanie ustawiony na zero.

Czas włączenia/wyłączenia może przechodzić przez godzinę 0:00, czas wschodu może przechodzić przez godzinę 0:00, czas zachodu również może przechodzić przez godzinę 0:00. PWM jest „odporny” na braki zasilania i po powrocie zasilania wstaje z ustawieniami adekwatnymi do aktualnej godziny.

Dostępny jest również tryb testu. Można go włączyć stawiając ptaszek w polu „Test”, ale tylko jeżeli aktywne jest połączenie z AQmą. Tryb ten umożliwia przetestowanie ustawień PWM dla lampy. Po uruchomieniu trybu testowego, aktywne staje się pole z suwakiem. Można nim ustawić żądaną moc lampy. Aktualną wartość PWM odwzorowuje kolorowy pasek powyżej suwaka. Dane do AQmy wysyłane są zaraz po ustawienia suwaka (po zwolnieniu przycisku myszki). Możliwe jest dokładne ustawienie wartości procentowych (co 1%) z użyciem strzałek na klawiaturze, wtedy, dane zostaną wysłane po klepnięciu entera.

Edit 1: Od wersji 1.1.0 "AQma LED Control", po zaniku zasilania wszystkie kanały PWM płynnie się "rozświetlają" aż do ustalonej wartości. Cały proces trwa 30 sekund. Wartość tę można zmienić w zmiennej pwmSilkySmootTimeSec (od 1 do 255 sekund).

Edit 2: Od wersji 1.2.0 "AQma LED Control", jest możliwe sterowanie przetwornicami z "pseudopwm", które działą odwrotnie. Jak dostają maksymalne wypełnienie to nie świecą a przy wypełnieniu równym zero walą pełną mocą (ostatnio sporo takich przetwornic na rynku). Jeżli trafiła się taka przetwornica, należy zmodyfikować w "Ustawieniach" zmienną pwmXInvert z false na true (gdzie X to numer kanału). Całość dla kanału pierwszego powinna wyglądać tak:

boolean pwm1Invert = true;

Dodatkowo, w tej wersji po ustawieniu 1% wypełnienia dla oświetlenia nocnego, zostaje ustawiona najmniejsza możliwa wartoś PWM. Teoretycznie lampa 100W będzie pracować z mocą 0,39W (dotyczy to tylko oświetlenia nocnego). Kolejne wartośći wyliczane są "normalnie".

Jest też ukłon w stronę społeczeństwa potrzebującego wyświetlacz do lampki. Funkcja pwm() zwraca przez samą siebie wartość wypełnienia kanału. Więc łątwo to można wyświetlić.

Edit: Od wersji 2.0.0 "AQma LED Control", można dorzucić moduł bluetooth.

Edit: Aplikacja AQma LED Control v 1.2.0 dostała nowy guzik "Data z PC". Na kontrolerze ustawia taką samą datę jak jest na PC.

Edit: Od wersji 2.4.6 "AQma LED Control" można wyposażyć w microswitch (lub jakikolwiek inny przełącznik chwilowy) i buzer z generatorem 5V.

Edit: Od wersji 3.0.0 sterownik został prawie całkowicie przepisany, ze względu na spore zmiany w kodzie, jak i w strukturze pamięci konieczne jest posiadanie aplikacji na Windows w wersji co najmniej 1.3.0. Starsze wersje aplikacji w ogóle się nie połączą. 
Doszła nowa funkcjonalność włączenia oświetlenia nocnego na określony czas "Po zmierzchu" (od, do) i "Przed świtem" (od, do). W oświetleniu nocnym biorą udział kanały, które mają zaznaczony "ptaszek" "Oświetlenie nocne". 
Jeżeli w sekcji "Dostosuj oświetlenie nocne" nie jest zaznaczony ptaszek "Ustaw manualnie" oświetlenie nocne będzie się świeciło przez całą noc.
Nowe funkcje przycisku: Jedno kliknięcie  powoduje wyłączenie trybu automatycznego i powolne wygaszanie lampy, wyłączenie jest całkowicie płynne (od aktualnej wartości do zera). Kolejne kliknięcie spowoduje rozświetlenie lampy ale z racji tego, że użytkownicy często używają sterownika do ograniczenia maksymalnej mocy kanałów (w aplikacji pole maksimum [%]) więc kanały zostaną rozświetlone do maksymalnych wartości ustawionych przez użytkownika, tym sposobem sam sterownik nawet w trybie manualnym dba o odpowiednią moc, która zostanie dostarczona do diod, jak również zachowa ustawienia charakterystyki kolorów ustawione przez użytkownika. Oba tryby manualne (On/Off) działają w każdym momencie pracy sterownika (kanał, włączony, wyłączony, rozświetlanie, wygaszanie, oświetlenie nocne, brak oświetlenia nocnego, inversja kanału, start sterownika itp...) i każdorazowo zmiana stanu wykonywana jest płynnie. Powrót do pracy w trybie automatycznym następuje samoczynnie po dziesięciu minutach lub dłuższym przyciśnięciu przycisku (ok 2 sekundowym). Powrót do stanu automatycznego odbywa się płynnie i zostanie zakomunikowany dwoma piknięciami buzera. 
Z uwagi na nowe funkcjonalności sama aplikacja nieco zmieniła interfejs. Obecnie istnieje możliwość wyboru języka (PL, EN). Sporo udoskonaleń przeszedł również system powiadomień. 

Edit: Od wersji 4.0.10, sterownik obsługuje czujnik temperatury i wentylatory. Dodana jest sprzętowa kontrola poprawnej pracy (watchdog, nowy bootloader).
 

Potrzebne elementy:

  • Arduino Nano v3 (10-30zł)
  • RTC DS3231, może być DS1307 byle z akumulatorem a nie z baterią (5-30zł)
  • Jakieś przewody i zasilacz od 7 do 12V

Opcjonalnie (nie jest wymagany) sterownik można wyposażyć w wyświetlacz LCD. 

Więcej tutaj: http://magu.pl/aqma-led-control

Dla początkujących w temacie Arduino polecam: http://magu.pl/ardui...lioteki-arduino

opis.png

1.jpg

Aplikacja na Androida (oczywiście darmowa):

Link do sklepu google play

1.png   2.png

5.png   6.png

7.png

Share this post


Link to post
Share on other sites

Dobra, nowa wersja 1.0.1 :). Okazało się, że aplikację da się obsługiwać na monitorach większych niż 24'', na mniejszych chowały się paski, taki nieudokumentowany ficzer :). Obecna wersja 1.0.1 (zamieniłem zdjęcia w pierwszym poście) ma od nowa poukładany interfejs, suwak przewijania jest w środku, interfejs jest ładniejszy i co nie jest bez znaczenia, działa jak należy. Poprawiłem też tryb testu, bo po włączeniu nie dawał zera (zgodnie z położeniem suwaka). Jest też nowa wersja softu na arduino.

Edited by magu (see edit history)

Share this post


Link to post
Share on other sites

Magu a jest taka mozliwosc ze np o 6 rano wschod czerwona dioda na 2% do np 7 pozniej of od 12 do 18 rowniez na wybarwienie ryb np na 30% czerwona dioda i zas of i od 22 do 23 zas na 1% czerwona ?

Wysłane z mojego SM-G900F za pomocą Tapatalk 2

Share this post


Link to post
Share on other sites

Możesz sobie trzy kanały PWM podpiąć do jednej przetwornicy. Proponuje dla bezpieczeństwa zrobić to przez diody. Jest szansa, że zadziała, ale nigdy tego nie testowałem.

Share this post


Link to post
Share on other sites

Planujesz dodac obsługę poprzez bt/wifi oraz dodanie do aplikacji pomiaru temp? A wogole bajka jalkby na apke androidowa to zrobić. Ja probowalem ale poleglem.. Zbieram sily na kolejne podejscie

Wysłane z mojego D6503 przy użyciu Tapatalka

Share this post


Link to post
Share on other sites

Właściwie mam sterowanie przez WiFi, przygotowałem interfejs webowy (działa na każdym systemie operacyjnym, ma ficzery do urządzeń mobilnych). Tylko użyłem go raz, zaraz po podłączeniu, żeby żonie pokazać jak fajnie z telefonu można sobie światłami mrugać :). Potem interfejs był podpięty z miesiąc i nawet raz się nie zalogowałem. Więc na ten moment sprawę olałem. Co do BT to na ebayu za 3$ można dokupić. Aplikacja komunikuje się po wirtualnym COMie więc nie będzie problemu. W kodzie do arduino trzeba dodać SoftwareSerial jako drugi z którego może przyjść komunikacja i powinno banglać.

I fotki testowego interfejsu:

post-8465-0-97765400-1442389568_thumb.png

post-8465-0-58426200-1442389572_thumb.png

Share this post


Link to post
Share on other sites

super wlasnie czegos takiego potrzebuje :thumbsup: ale pod uno :help: jednak i tak wielkie dzieki, ze ci sie chcialo

Share this post


Link to post
Share on other sites

Polecam bardzo! Używam od kilku dni i jestem bardzo zadowolony. Brakuje mi jedynie timerow do przekaznikow, gdyż lampę zrobiłem hybrydowa ale naprawdę jest ogień!

Share this post


Link to post
Share on other sites

Fajny sterownik tylko czy jest możliwość o rozbudowę dodatkowych kanałów na mega2560 ,

Share this post


Link to post
Share on other sites

super wlasnie czegos takiego potrzebuje :thumbsup: ale pod uno :help: jednak i tak wielkie dzieki, ze ci sie chcialo

Ze schematu wynika, że pod Uno skompiluje się bez żadnych przeróbek w kodzie i aplikacji. Sam spróbuj :)

Polecam bardzo! Używam od kilku dni i jestem bardzo zadowolony. Brakuje mi jedynie timerow do przekaznikow, gdyż lampę zrobiłem hybrydowa ale naprawdę jest ogień!

Fajnie że się przydaje. Z tajmerami polecam bardziej rozbudowany projekt http://magu.pl/aqma

Fajny sterownik tylko czy jest możliwość o rozbudowę dodatkowych kanałów na mega2560 ,

Pewnie, zarówno kod jak i API jest ogólnie dostępne, możesz sobie dopisać co Ci się żywnie podoba.

Share this post


Link to post
Share on other sites

Da radę jaśniej o co chodzi z API ? :baby: Kod na arduino może i bym przerobił ale co z programowaniem z kompa?

Edited by marksman (see edit history)

Share this post


Link to post
Share on other sites

https://pl.wikipedia...mming_Interface

Żeby dopisać swoje kanały musisz dodać kolejne pakiety zmiennych dla poszczególnych kanałów, ustawić nowe piny jako OUTPUT, dla każdego nowego kanału musisz (w sekcji silnik) wywołać funkcję pwm() z parametrami, które odczytałeś z epromu.

Co za tym idzie musisz dopisać obsługę nowych zapytań przychodzących z aplikacji (w sekcji Analysis) wraz z ich odpowiednim parsowaniem. Potem sparsowane zmienne, musisz zapisać w wolne miejsce w epromie (proponuje zacząć od adresu większego niż 424). W funkcji eEpromRead() musisz dopisć ich odczytywania i podstawiane pod zmienne dla funkcji pwm().

Większość możesz skopiować i odpowiednio zmienić wzorując się na aktualnie dostępnych kanałach.

Co do aplikacji, to do kolejnych kanałów musisz napisać swoją korzystając z dostępnego, przygotowanego przeze mnie API.

Edited by magu (see edit history)

Share this post


Link to post
Share on other sites

A w czym napisać swoją aplikację wykorzystując Twoje API? Sorki za tak prozaiczne pytanie ale szkołę kończyłem wieki temu.

Share this post


Link to post
Share on other sites

To jest komunikacja po serialu, więc właściwie nawet jeżyki skryptowe sobie poradzą. Ja pisałem w C#.

Share this post


Link to post
Share on other sites

Wieczorem coś tam spróbujemy , może coś tam z szkoły jeszcze pamiętamy

Share this post


Link to post
Share on other sites

projekt oraz pozostałe poprostu super wielki szacun za poswięcony czas,wiedzę oraz trud :thumbsup:

Share this post


Link to post
Share on other sites

Nowa wersja oprogramowania na PC (v1.0.2). W momencie gdy zachodziła potrzeba odzyskania danych z AQmy pobierała się konfiguracja pięciu kanałów natomiast ostatni nie przekazywał danych do aplikacji. Nie zauważyłem bo nie używałem tej funkcjonalności, na dodatek mam 5-kanałową diodę, taki niefart. No i najważniejsze, rozszerzyłem pole daty, bo chowała się ostatnia cyferka :). Nową wersję można po prostu "nainstalować" na poprzednią instalacja zachowa wszystkie wprowadzone dane. Zresztą w pełni działa już odtwarzanie konfiguracji z AQmy :)

Edited by magu (see edit history)

Share this post


Link to post
Share on other sites

WItam.

Mam proble odnosnie sterownika by mago.

mam zamiar zalozyc solniczke ale najpierw chce skapletowac sprzet.zaczolem od zrobienia lampy diy led na arduino.

i wlasnie mam wielki problem

robie test aqmy by magoo i podlaczylem doraznie jeden kanal z 6 diod 3w z driverem 700ma

w zalaczniku schemat podlaczenia.

do arduino wgralem kod

odpalilem aqme wszystko sie polaczyli niby ok podlaczylem zasilanie do diod i sie zapalily

. problem polega na tym ze jak wprawadzam zmiany w aqme lub jade suwakiem zeby zobaczyc czy cos sie zadzieje nic sie niedzieje.dioty swieca tylko jednostajnie i nic niereaguje na zmiany.

jak klikam w aqmie widac na arduino ze sygnal dochodzi bo miga zielona dioda

Prosze o pomoc

post-25580-0-18098700-1443270954_thumb.jpg

Share this post


Link to post
Share on other sites

zależy które masz arduino , np. w nano może trzeba w lini 166 .. doczytaj

ustaw datę godzinę - wyślij / zastosuj

potem pobierz/odczytaj

ustaw dany kanał (czasy) , rozłącz podłącz i odczytaj - strzałka z lewej obok wyłącznika

jeżeli tu działa tzn. że źle podłączyłeś np. driver

Edited by silvia (see edit history)

Share this post


Link to post
Share on other sites

posiadam arduino nano i uno

wydaje mi sie ze artuino dziala ok bo wczytuje zegrar pobiera wszystko hula kazde klikniecie w aqmie to zapala se dioda w arduino wiec wszystko chyba jest ok zdaje mi sie ze driver zle podlaczony tak jak muwisz i kolega wczesniej.chyba minus z drivera musze polaczyc z grd w arduino tak?

Share this post


Link to post
Share on other sites

Nowa wersja oprogramowania na Arduino Nano (http://magu.pl/aqma-led-control ver 1.1.0). Dodałem nową funkcjonalność płynnego startu. Po podłączeniu zasilania AQma zacznie płynnie "rozświetlać" kanały PWM od 0 do docelowej wartości. Poprawiłem też szybkość reakcji lampy na zmiany w windowsowym programie.

Druga sprawa... Po podłączeniu się do AQmy LED laptopem resetowała mi się lampa i przez chwilę głupkowato mrugała kolorami. Myślałem, że to wina mojej chińskiej kopi Arduino Nano, ale zrobiłem już trzy lampki na tym sterowniku i każdy miał tę przypadłość. Po kombinacjach udało mi się ustalić o co chodzi. Rozwiązaniem jest dolutowanie rezystora 10kΩ pomiędzy pin RST a 5V i kondensatora 1μF pomiędzy pin RST a masę (całkowity koszt to z 50gr a jakoś obsługi nieporównywalnie lepsza). Jedyna niedogodność to taka, że po modyfikacji przy wgrywaniu nowego sketch'a (np. aktualizacja oprogramowania) trzeba fizycznie kliknąć reset na płytce w chwili gdy pojawi się napis "Wgrywanie..."

To tyle z nowości.

Edited by magu (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   1 member

×

Important Information

Wchodząc do serwisu Nano-Reef, zgadzasz się na warunki Terms of Use.