Sterownik oświetlenia akwarium morskiego

Na potrzebę klienta powstał dość ciekawy prototyp. Jako, że akwaria morskie muszą mieć specyficzny tryb doświetlania, potrzebne było odwzorowanie zmierzchu i świtu (koralowce to lubią ponoć), oraz dodanie dekoracyjnych walorów samemu oświetleniu. 

Powstała LEDowa lampa. Nie brałem udziału w jej tworzeniu, a jedynie w okabelkowywaniu. Zamysły autora nie były mi znane i pewnej części LED’ów nie dało się podłączyć. Za to zrobiłem sterownik. 

Sam program jest o tyle ciekawy, że wykorzystując zegar czasu rzeczywistego (RTC) możemy sobie zaprogramować do 24 programów, w których dowolnie można manipulować godziną załączenia, jasnością każdego z 4 kanałów LED – w tym zastosowaniu białe zimne, białe ciepłe, czerwone i niebieskie. Raz zaprogramowany układ trzyma wszystkie parametry, wraz z aktualną godziną. 

Wyszło ciekawie. Ale zanim wyszło, muszę się do pewnych problemów przyznać.

1. Zakichany RTC – spędził mi sen z powiek, albowiem okazuje się, że procedura autoaktualizacji godziny i daty podczas programowania jest bardzo zdradziecka! A więc używając komendy:

RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));

użyjcie jej raz (zaktualizuje i uruchomi RTC) i tylko raz. Zaraz potem zakomentujcie, skompilujcie program na nowo i wrzućcie do Arduino. RTC już sobie będzie działał, a reszta programu nie ucierpi. Okazuje się, że jeśli tego nie zrobimy, to arduino za każdym resetem będzie wrzucał do RTC datę i godzinę kompilacji sketcha… Jako startową… WTF?! 

2. LCD_keyboard_shield – niby piękny, tani i w ogóle. Jednak… Nikt nie wspomina, że pomimo iż używa tylko ADC0 do obsługi 5 przyciskowej klawiatury, to podbiera nam 4 z 6 sprzętowych kanałów PWM. Co dla tego projektu było dość ważne. Ale poradziłem sobie z tym, używając naprawdę zacnej biblioteki SoftPWM

3. PowerBoard – nie znalazłem gotowca, dzięki któremu mógłbym sterować takimi ledami bezpośrednio z arduino. Zatem Eagle i frezarka w ruch i powstał moduł mocy z czterema naprawdę godnymi mosfetami (P55NF06L). Największą ich zaletą jest czułość i bardzo niski RDSon, dzięki czemu praktycznie nie wytraca się na nich moc (są prawie zawsze zimne). Rezystorki dobierałem podglądając arduinowe RAMPS’y, i przy 680R na arduino-bramka i 8,2kR na źródło-bramka działa to wyśmienicie. 

Film z działania tego ustrojstwa możecie zobaczyć na profilu fb prototypów, ale postaram się też zmontować jakieś krótkie wideo z opisem gadanym dla nie lubiących czytać. 

Załączniki:

  1. akwarium.ino
  2. płytka .brd – dla eagle
  3. schemat .sch – również eagle

 

Dodaj komentarz