CatLED czyli mój własny sterownik LEDów cyfrowych jak i analogowych.
Autor: Martin Szelcel • 6 min. czytania • Aktualizacja
W tym poście chciałbym przedstawić Ci mój mały projekt. Nazwałem go CatLED. Czym jest CatLED? CatLED to sterownik do ledowych taśm, których możemy używać do oświetlenia lub dekoracji naszego pokoju. Aktualna wersja CatLED oparta jest na mikrokontolerze ESP8266. To czym CatLED wyróżnia się od innych sterowników to obsługa jednocześnie pasków analogowych i cyfrowych. Jest to także mój pierwszy projekt elektroniczny w który w całości zbudowałem od zera. Od projektu własnego PCB, przez wlutowanie wszystkich komponentów do wgrania oprogramowania ESPHome.
Czym różnią się analogowe taśmy LED od cyfrowych?
Zasadniczą różnicą między nimi jest to, że w przypadku taśm cyfrowych każda z diód działa niezależnie od innych, może mieć swój kolor lub być wyłączona. Pozwala to na tworzenie różnych efektów, animacji. W taśmach analogowych natomiast cała długość taśmy musi świecić w jedej barwie, każda dioda ma dokładnie taki sam kolor i jasność.

Kolejną różnicą jest sposób zasilania i sterowania tymi taśmami. Analogowe paski zazwyczaj pracują na napięciu 12V lub 24V, a cyfrowe na 5V, ale istnieją również modele cyfrowe wymagające zasilania 12V.
Aby sterować cyfrowymi taśmami mikrokontroler przesyła bit po bicie kolor pierwszej diody (w sumie 24 bity po 8 na każdy kolor RGB), dalsze bity przesyłane przez mikrokontroler są przekazywane dalej do kolejnej diody w pasku, w taki sposób cyfrowe taśmy można dowolnie łączyć, a ich długość jest jedynie ograniczona przez pamięć mikrokontrolera i prędkość odświeżania. Dodatkowo w przypadku mikrokontrolera ESP8266 jego logika 3.3V musi zostać zamieniona na logikę na której działa pasek LED, czyli 5V.
Sposób działania analogowych taśm jest odmienny. Jako że cały pasek może mieć tylko jeden kolor, to dla każdego koloru mamy wyprowadzony osobny pin. W przypadku analogowych taśm wygląda to tak:

Aby kontrolować taki typ paska musimy zastosować tranzystory, a konkretnie MOSFETy, którymi mikrokontroler steruje za pomocą PWM. Na każdy kanał paska (w przypadku paska RGB na każdy z jego kolorów) musimy użyć osobnego tranzystora i osobnego pinu naszego mikrokontrolera.
Po co CatLED posiada jednoczesną obsługę dwóch typów taśm LED?
Paski cyfrowe są super pod względem ich możliwości wizualnych, pozwalają na ładne wielokolorowe efekty i animacje. Trzeba jednak pamiętać również o ich wadach, najczęściej nie są one zbyt jasne, więc nie nadają się jako dobre źródło światła. Drugi problem to brak oddzielnej diody świecącej na biało. Diody w takich paskach posiadają jedynie trzy kolory Red/Green/Blue, kolor biały tworzony jest więc z mieszanki tych kolorów. Nie jest on zbyt przyjemny dla oka i nie ma najlepszej barwy, może to więc stanowić dla ciebie problem jeżeli masz wyczulone oko.
Dlatego aby rozwiązać ten problem zastosowałem dwie różne taśmy. Cyfrową RGB, która oferuje wszystkie swoje zalety, ale również analogową taśme CCT. Paski CCT nie posiadają kolorowych diód, zamiast tego posiadają dwie diody białe - ciepłą biel oraz zimną biel. Zmieniając jasność każdej z diód zmieniamy również temperaturę bieli, dzięki czemu możemy ją dopasować do naszych wymagań. Są one również dużo jaśniejsze i przyjemniejsze dla oka.
Doszedłem więc do wniosku, że połączenie tych dwóch pasków pozwoli mi połączyć dwa światy i otrzymać oświetlenie, które jednocześnie może korzystać z wszystkich kolorów i efektów na które pozwala pasek cyfrowy, ale także dostarczy przyjemnego i jasnego białego światła w wybranej temperaturze.
Rozpocząłem więc poszukiwanie kontrolera LED który pozwoliłby mi na połączenie obu tych pasków i okazało się, że takowy nie istnieje...
W ten oto sposób zrodził się pomysł na stworzenie mojego własnego kontrolera, który później nazwałem CatLED.
Problemy z pierwszą wersją CatLED
Niestety jak w każdym projekcie nie obyło się bez problemów, w szczególności gdy po raz pierwszy projektuje się układ elektroniczny. Na szczęście większość z nich udało mi się wyeliminować na etapie prototypu. Ale niestety jednemu z nich udało się przemknąć do gotowego projektu i wydruku PCB. Problem polega na tym, że gdy używamy paska białego (analogowego CCT) na pasku cyfrowym pojawiają się zakłócenia, diody migotają i przyjmują nieodpowiednie kolory. Do dzisiaj nie jestem w stu procentach pewnien co powoduje problem, ale podejrzewam błędny wybór pinów w mikrokontrolerze, do którego podłączone są paski lub jego zbyt małą moc obliczeniową. Być może źródło problemu znajduję się w obu tych miejscach.
Jak dokładnie działa CatLED? Omówienie schematów.
Na początku chce zaznaczyć, że nie zalecam kopiowania tego układu, posiada on wspomniany wyżej problem, a możliwe jest również, że posiada inne problemy o którch nie wiem. Dopiero się uczę i prawdopodobnie dało się go wykonać dużo lepiej.
Zacznijmy od serca czyli od mikrokontolera. W tym projekcie wykorzystałem ESP8266 a konkretniej moduł ESP-12F. Zacząłem od podłącznia wszystkich niezbędnych rezystorów, które są wymagane do działania i programowania tego kontrolera. Nie zabrakło również diody, której celem jest zatrzymanie prądu, aby ten nie zasilał całej reszty płytki podczas programowania mikrokontrolera oraz kondensatora który niweluje szumy. Kolejno z mikrokontolera wyprowadziłem piny TX i RX, które służą do komunikacji szeregowej i programowania, trzy piny dla pasków analogowych (R_3.3V, G_3.3V, B_3.3V) oraz jednego pinu dla paska cyfrowego (D_3.3V).

Następnie stworzyłem układ składający sie z trzech rezystorów i trzech MOSFETów, który za pomocą sygnałów PWM z mikrokontolera steruje opornością do masy (GND) pinami na taśmie LED. Teraz nasz mikrokontoler może już sterować paskami analogowymi.

Kolejnym krokiem była zamiana logiki mikrokontolera 3.3V na logikę 5V, której używają cyfrowe paski LED. Wykorzystałem w tym celu układ SN74HCT125N. Mimo tego, że sprawdza się dobrze jest on moim zdaniem za duży. Używam również tylko jednego z jego czterech wyjść. Dlatego w nowszej wersji kontrolera chciałbym zastosować coś mniejszego.

Najtrudniejsze dla mnie okazało się zaprojektowanie zasilania układu, nadal jest to dla mnie skomplikowane zagadnienie. Dlatego aby nie popełnić katastrofalnych w skutkach błędów, w celu zamiany 12V lub 24V na 5V wymaganych przez dalszą część układu i cyfrowe paski LED, wykorzystałem gotową przetwornicę na płytcę PCB nazwaną MP1584EN. Niestety nie pomyślałem, aby dać możliwość jej wyłączenia wtedy gdy chcemy sami dostarczyć zarówno napięcie 12/24V i 5V na płytkę. Kolejno napięcie 5V musiałem przekonwertować na 3.3V wymagane przez mikrokontroler. W tym celu wykorzystałem znany i lubiany stabilizator napięcia AMS1117 wraz z niezbędnymi kondensatorami.

Nie zabrakło również wszystkich wymaganych złącz do LEDów, programowania i zasilania. Zasilanie 12V/24V możemy dostarczyć za pomocą złącza z zaciskami śrubowymi lub okrągłego złącza DC, podobnego to tego wykorzystywanego kiedyś w laptopach.

Wydruk PCB, lutowanie i programowanie układu
Kolejnym krokiem było zaprojektowanie i wydrukowanie PCB. Gotowy projekt ma wymiary 5x5cm i wygląda następująco:


Przyszła więc pora na zamówienie PCB i oczekiwanie na przesyłkę, która dotarła po około miesiącu.

Kolejno na każdą z 5 płytek musiałem przylutować wszystkie komponenty, wgrać oprogramowanie oraz przetestwać czy wszystko działa jak powinno. Z procesu przygotowania jednej z płyek zrobiłem timelapsa, którego możesz obejrzeć poniżej.
Co dalej z projektem?
Mimo tego, że jestem całkiem zadowolony z pierwszej wersji CatLED, chciałbym stworzyć nową, ulepszoną wersję, być może nawet wyposażoną w mocniejszy mikrokontroller ESP32. Postępy w projektowaniu i tworzeniu nowego kontrolera chcę opisywać na bieżąco na tym blogu. Mam nadzieje, że wiele osób uzna to za interesujące i będzie mogło razem ze mną nauczyć się czegoś nowego.
Co myślisz o tym projekcie? Może masz jakieś sugestie odnośnie nowej wersji CatLED? Jeżeli masz jakieś pytania, możesz śmiało zostawić je w komentarzu, postaram się odpowiedzieć na nie w wolnej chwili :)