AQma LED Control

Utworzono: 09 wrzesień 2015

AQma LED Control, to 6-kanałowy sterownik PWM oświetlenia LED.   

Zarówno kod do Arduino Nano, jak i aplikacja na Windows napisane są przeze mnie i dostępne za całkowitą darmochę.
Żeby było łatwiej, oprogramowane Arduino, płytkę, zestaw elementów można kupić w moim sklepie online, serdecznie zapraszam: https://AQma.pl

 

Co potrafi sterownik:

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.

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).

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 od tej wersji po ustawieniu 1% wypełnienia dla oświetlenia nocnego, zostaje ustawiona najmniejsza możliwa wartoś PWM (mniejsza niż 1%). Teoretycznie lampa 100W będzie pracować z mocą 0,39W (dotyczy to tylko oświetlenia nocnego - moc kanału/255). 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ć. 

Od wersji 2.0.0 "AQma LED Control" umożliwia sterowanie bezprzewodowe poprzez Bluetooth. 

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.

Pojedyncze krótkie naciśnięcie przycisku spowoduje wyłączenie wszystkich kanałów LED, domyślnie na 10 minut (jedno piknięcie buzera), ponowne krótkie naciśnięcie przełącznika spowoduje ustawienie wszystkich kanałów na pełną moc. Sterownik pozostanie w trybie "ręcznym" przez 10 minut. Czas trybu ręcznego można ewentualnie dostosować w zmiennej sleepTime (w sekundach). Po upływie zadanego czasu sterownik wróci do pracy w trybie automatycznym (ustawionym przez użytkownika w aplikacji). Aby ręcznie wymusić wyjście z trybu manualnego i powrót do ustawień automatycznych należy przytrzymać przycisk przez około 2s do momentu usłyszenia długiego sygnału beeeeeeeeep, lub wykonać dowolna czynność konfiguracyjną z windowsowej aplikacji. 

Każdorazowe poprawne przesłanie danych konfiguracyjnych z aplikacji do sterownika zostanie potwierdzone sygnałem dźwiękowym. 

Połączenie - trzy krótkie biiipy.

Przesłąnie konfiguracji kanału, pobranie daty, pobranie ustawień ze strownika - dwa krótkie biiipy.

Ustawienie daty i godziny poprzez przycisk "Wyślij" - dwa krótkie biiiipy.

Automatyczne ustawienie daty za pomocą przycisku "Data z PC"  - cztery beepy. 

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.4.0

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ń. 

  Potrzebne elementy:

   Schemat:

Jest bardzo trudny :)

* Arduino Nano ma taką irutującą przypadłość, że po podłączeniu USB resetuje się, co powoduje mruganie lampy. Rozwiązaniem jest dolutowanie kondensatora 1μF pomiędzy pin RST a masę. Ten patent u mnie działa za każdym razem, jednak jest sporo innych pomysłów o których można poczytać tutaj. Jedyna niedogodność to taka, że po modyfikacji przy wrgrywaniu nowego sketch'a trzeba fizycznie kliknąć reset na płytce w chwili gdy pojawi się napis "Wgrywanie..."

** Żeby aplikacja na windows prawidłowo odczytała dane z AQmy najpierw należy skonfigurować wszystkie kanały (nawet te nieużywane) inaczej zaczytywane są śmieci z nieuzupełnionego epromu i aplikacja wali błąd.

*** Jeżeli Arduino i drivery LED zasilane są z różnych źródeł należy połączyć masy (minusy) wszystkich użytych zasilaczy (tylko minusy!!!).

**** Arduino jest wyposażony w mikrokontoler, który jest bardzo wrażliwy na skoki zasilania. Bardzo zalecane jest użycie filtrowanego zasilacza transformatorowego. Dodatkowo dobrze jest dołożyć równolegle dwa kondensatory 100nF i 10µF pomiędzy pin 5V a GND Arduino.

***** Istnieje możliwość ustawienia kanału w taki sposób aby sterował przekaźnikiem SSR. W aplikacji konfigurację kanału trzeba ustawić tak: wschód 0 minut, zachód 0 minut, minimum 0%, maksimum 100%, oświetlenie nocne wyłączone. Jeżeli przekaźnik będzie działał "odwrotnie", należy przeprogramować sterownik, zmieniając pwmXInvert (gdzie X to numer obwodu)  z false na true

****** Jeżeli układ ma więcej niż jeden zasilacz, wszystkie masy muszą być ze sobą połączone, to bardzo ważne, inaczej jest spora szansa, że popali sie cała elektronika

A tak powinien wyglądać, żeby nie było problemów:

Gotowy, wyposażony we wszystkie nowości sterownik można kupić tutaj: 

https://aqma.pl/index.php?route=product/product&path=59&product_id=58

Opcjonalna implmementacja z wyświetlaczem LCD (kod w ver. minimum 3.4.0, w zmiennej lcdAddress należy podać adres używanego wyświetlacza I2C)

Przykładowe, optymalne implementacje:

Jako drivery polecam jene z najlepszych na świecie Mean Well. A do ich montażu płytkę AQmaB MW, wystarczy przykręcić przewody i lampa gotowa :)

https://aqma.pl/index.php?route=product/product&path=61&product_id=70

 

 Aplikacja na Windows:

Moje płytki, które ułatwią życie :) 

androidAplikacja do zarządzania dla systemu Android, dostępna całkowicie za darmo w sklepie Google Play

Starsza wersja aplikacja dla Androida dostępna tu

Załączniki:
Dostęp do URL (AQLC-setup.zip)AQLC-setup.zip[Aplikacja na PC do zarządzania AQma LED Control v 1.4.3]3660 Pobieranie2017-03-20
Dostęp do URL (AQmaLED_v3.1.0.zip)AQmaLED_v3.1.0.zip[Kod do Arduino Nano z obsługą bluetooth. Wymaga aplikacji w wersji 1.4.0 lub wyższej]4392 Pobieranie2017-03-05
Dostęp do URL (AQmaLED_v3.4.0_BETA.zip)AQmaLED_v3.4.0_BETA.zip[Kod do Arduino Nano z obsługą modułu bluetooth i wyświetlacza LCD 16x2 I2C, wersja beta. Wymaga aplikacji w wersji 1.4.0 lub wyższe]1047 Pobieranie2017-06-06
Dostęp do URL (Box_AQmaLED.zip)Box_AQmaLED.zip[Pliki *STL umożliwiające wydruk obudowy na drukarce 3D. W paczce PDFy z wizualizacją. Autor: Jędrzej Zawratowski]704 Pobieranie2017-05-31
Dostęp do URL (HCLED-AQma_v1.1.0-nierozwijany-niewspierany)HCLED-AQma_v1.1.0-nierozwijany-niewspierany[Kod do Arduino Nano. LCD (New LiquidCrystal), czujnik temperatury, czujnik ruchu, obsługa grzałki i wentylatorów. Kod nierozwijany, niewspierany.]1483 Pobieranie2016-03-05
Dostęp do URL (Starsza wersja)Starsza wersja[Starsza wersja aplikacji (1.2.0) i kodu do Arduino Nano (2.0.1)]775 Pobieranie2017-03-03