W poprzednim temacie pokazywałem wnętrze monitora LCD Acer S236HL wraz z jego podświetleniem LED. Tutaj przerobię pozostałości tego monitora na pasek LED sterowany przez WiFi. Użyję do tego modułu WiFi z układem podobnym do ESP8266 (BK7231). Mój układ będzie pozwalać na kontrolę jasności paska oraz na jego włączanie i wyłączanie. Dzięki użyciu OpenBeken całość będzie też kompatybilna z Home Assistant, co pozwoli sterować tym paskiem z dowolnego innego wspieranego włącznika oraz grupować go razem z innymi paskami LED.
Poprzedni temat: Monitor LCD Acer S236HL - wnętrze, budowa, potencjał wykorzystania LEDów
A więc wracamy do płytki:
Płytka podłączona luzem do podświetlenia i zasilacza (bez przycisków, LVDS, itd) wciąż zapala podświetlenie.
Na początek sprawdziłem jakie napięcia są na płycie. Znalazłem 3.3V, ale miałem wątpliwości co do jego wydajności prądowej. Moduł WiFi potrzebuje czasem ponad 100mA przy 3.3V. Ostatecznie zdecydowałem się użyć linii 5V ale razem z LDO 3.3V:
Czyli zasilanie mamy.
Teraz jak sterować LEDami?
EUP2588:
Potrzebujemy sygnałów EN (enable) oraz PWM (kontrola jasności).
EN wymaga stanu wysokiego by włączyć:
No i PWM:
Tylko teraz pytanie, jak to jest podłączone do głównego kontrolera?
Trzeba sprawdzić, czy można to wysterować z MCU:
Poziom wysoki jest od 2.4V, czyli MCU pracujący na 3.3V będzie w stanie to wysterować.
Szukałem też schematu. Tej konkretnej płyty nie było, ale patrzyłem na podobne schematy:
Troszkę mnie zdziwiło, że jest tutaj pull-up z tranzystorem, teraz wysoki stan na bazie tego tranzystora będzie skutkować niskim stanem na BKLT_EN... ale to można poprawić w firmware.
To zaczynamy od zasilania:
Moduł WiFi zameldował się w sieci, działa.
Teraz EN i PWM - zbadałem ścieżki i doszedłem do wniosku, że podobnie jak na załączonym wyżej schemacie, główny MCU tutaj steruje nimi przez tranzystory. Dodatkowo rzeczywiście mają one rezystory pull-up.
A więc uciąłem ścieżkę:
On/Off działa:
Można kontrolować LEDy.
Podobnie podłączyłem PWM:
W OBK włączyłem PWM (dwa przyciski są skutkiem ubocznym osobno pinu PWM i Enable):
Na koniec stopniowo wylutowywałem zbędne elementy z PCB:
Miałem obawy, że główny procesor czymś jeszcze kontroluje, że może po drodze jest jeszcze jakiś tranzystor i że będę musiał go zewrzeć lub załączać, ale nie. Wyodrębnione układ LED dalej działa.
Filmik nie przedstawia efektu zbyt dobre, bo kamera dostosowuje się do jasności paska i nie widać dobrze ściemniania..
Zostało jeszcze uwolnienie paska LED od obudowy. Jest on do niej przyklejony specjalną dwustronną taśmą. Wystarczy go podważyć cienkim nożem:
W ten sposób otrzymujemy uwolniony pasek LED:
Tylko teraz uwaga - pasek w tej postaci nie jest w stanie skutecznie odprowadzać ciepła i szybko się uszkodzi! Teraz należy znaleźć jakiś sposób by go odpowiednio chłodzić, może nakleić go na jakiś kątownik, itd.
Dodatkowo, w celach usprawnienia, dopisałem w OBK skrypt:
again:
setChannel 2 $led_enableAll
delay_s 0.1
goto again
Ten skrypt automatycznie wystawia stan kontrolera LED na drugi kanał.
Podsumowanie
Tym razem nie było większych problemów. Zasadniczo okazało się, że cały moduł LED sterują tylko dwa sygnały - Enable oraz PWM - które łatwo jest wytworzyć na zewnętrznym MCU. Dodatkowo na pokładzie płytki już była przetwornica step down zapewniająca 5V, więc nie było problemu z tym, że zewnętrzny zasilacz daje tylko 19V.
Po stronie firmware też poszło gładko, musiałem dopisać tylko mały skrypt kontrolujący pin EN, a do dlatego, że praktycznie wszystkie paski LED w sprzedaży nie mają pinu EN, i tylko sam PWM je kontroluje, a tu jest osobno EN i osobno PWM.
Zasadniczo projekt jest udany, teraz muszę tylko znaleźć szynę pod te LEDy (by odprowadzała ciepło) a potem gdzieś je zamontować. Swoją drogą, macie jakieś sugestie jak to zrealizować? Czym je przykleić? Być może w trzeciej części pokażę tego realizację, też np. z jakimś mocowaniem bądź obudową na kontroler (dodam enkoder by dało się sterować też bez WiFi).
Fajne? Ranking DIY Pomogłem? Kup mi kawę.