logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Taśma LED z interfejsem RS485? Protokół DMX512 - TM512C4 RGBW 24V

p.kaczmarek2 26 Sie 2025 13:02 1503 5

TL;DR

  • Indywidualnie adresowalna taśma LED RGBW 24V z układem TM512C4/TM512, 60 SMD5050 na metr, sterowana protokołem DMX512 po RS485.
  • Sterowanie zrealizowano z ESP32 LilyGO T-CAN485 przez UART→RS485; DMX pracuje z 250 000 bit/s i wymaga startu: niski 88 µs, wysoki 8 µs.
  • Jeden kontroler obsługuje sześć diod, więc 4 bajty kanałów wystarczają na 128 pikseli RGBW w pięciometrowym odcinku.
  • Testy potwierdziły działanie kolorów, mieszanie barw, regulację jasności i prostą animację.
  • Największy problem to pobór mocy: 0.46A przy 24.3V na zgaszonym pasku i 1.94A po zapaleniu, czyli około 12W standby.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA
📢 Słuchaj (AI):
  • Zasilacz TP-1305 i podłączona taśma LED RGBW z aktywnymi kolorami
    Przedstawię tu indywidualnie adresowalną taśmę LED RGBW (czerwony, zielony, niebieski i biały) opartą o układ TM512C4 i pracującą na napięciu 24V. Pokażę tu, jak działa jej protokół komunikacji DMX512 i jak można prosto wysterować ją z poziomu RS485 ESP32. Do demonstracji użyję płytki ESP32 LilyGO T-CAN485, gdyż ona nieco ułatwia sprawę i ma już wbudowany transceiver UART->RS485.
    Parametry techniczne taśmy LED RGBW HR00-C24RGBW512AC4-60 na białym tle
    Zacznijmy od parametrów taśmy. Taśma posiada 60 LED SMD5050 na 1 metr i dostępna jest w odcinkach po 5 metrów. Kolory są cztery - oprócz standardowego RGB mamy też biel o temperaturze 4000K (neutralne światło dzienne) co pozwala uzyskać różnorodne i naturalne efekty. Pełny model taśmy to HR00-C24RGBW512AC4-60.
    Taśma LED RGBW z układem TM512AC4 i oznaczonymi liniami sygnałowymi
    Użyty kontroler to zewnętrzny układ i przypada tu jeden na sześć LEDów, więc nie możemy kontrolować ich całkowicie indywidualnie.
    Tabela parametrów taśmy LED RGBW TM512AC4: moc, jasność i skuteczność świetlna
    Producent proponuje do tego dedykowane kontrolery K-8000C, ale my wykombinujemy coś sami:
    Schemat podłączenia taśmy LED RGBW zasilanej 24V z kontrolerem K-8000C

    Zobaczmy jak taśma wygląda w praktyce.
    Wtyczka 6-pinowa do taśmy LED RGBW trzymana w dłoni
    Mamy tutaj 5 linii, kolejno:
    - +24V - zasilanie
    - ADi - używane do adresowania
    - A - linie RS485
    - B - linie RS485
    - GND - masa
    Zasilanie jest dodatkowo wyprowadzone. Taśmy kończą się wtyczkami, co ułatwia montaż.
    Zbliżenie na końcówkę taśmy LED z oznaczeniami linii: +24V, A, B, ADi, GND
    Taśma podzielona jest na fragmenty - jeden układ scalony na sześć diod:
    Zbliżenie na taśmę LED RGBW 24V z widocznymi diodami, rezystorami i układem TM512C4
    Ten układ to TM512:
    Schemat blokowy układu TM512AC i rozmieszczenie pinów w obudowie SOP16
    TM512 to precyzyjny sterownik LED DMX512 z 16-bitową skalą szarości, korekcją gamma i adaptacyjnym dekodowaniem do 4096 kanałów, obsługujący tryb stałoprądowy i PWM do sterowania zewnętrznymi tranzystorami. Jest przeznaczony do oświetlenia LED i animowanych efektów scenicznych
    Dokumentacja TM512AC opisująca cechy i funkcje sterownika LED DMX512

    DMX512 to popularny protokół wykorzystywany w oświetleniu scenicznym, który definiuje stałą szybkość transmisji i pakiet danych złożony z 512 kanałów. DMX512 może wydawać się dość tajemniczy, ale w zasadzie sprowadza się on do wysyłania poszczególnych wartości przez RS485, czyli przez UART + transceiver RS485 zapewniający odpowiednie poziomy. RS485 jest standardem transmisji szeregowej, który pozwala na przesyłanie danych na większe odległości i w trudniejszych warunkach niż zwykły UART. Umożliwia pracę w trybie różnicowym, co oznacza, że sygnał jest przesyłany jako różnica napięć między dwiema liniami (A i B), co znacząco zwiększa odporność na zakłócenia. Wystarczy podłączyć odpowiedni konwerter na UART i mamy RS485 - przykładowo MAX485:
    Moduł MAX485 TTL do RS485 z zaznaczonymi wymiarami i pinami zasilania
    Można też użyć gotowca - np. moduł ESP32 LilyGo T-CAN485:
    Płytka LilyGO ESP32 z układami CAN, RS485 i opisanymi pinami funkcjonalnymi
    RS485 z poziomu kodu obsługujemy tak jak UART - po prostu trzeba zainicjować port, ustawić baud i już można wysyłać bajty.

    Teraz pytanie - jak wysyłać te bajty? Opisuje to sekcja "Communication Protocol" z noty katalogowej TM512:
    Schemat przebiegu sygnału DMX512 z opisem bitów i tabelą parametrów protokołu.
    Szybkość transferu (baud) to 250 000 bitów na sekundę. Wysyłane jest 513 bajtów (prawie jak w nazwie - DMX512), przy czym pierwszy bajt nie jest używany. Zazwyczaj jeden bajt przypada na jeden kanał, więc w przypadku paska RGBW mamy 4 bajty na jeden odbiornik. W ten sposób można obsłużyć do 128 takich pikseli.
    Dodatkowo DMX wymaga odpowiedniej procedury startu pakietu, dopiero potem wysyłane są dane. Domyślny stan linii (idle) to stan wysoki, potem ustawiamy stan niski na co najmniej 88µs, potem stan wysoki na 8 µs i rozpoczynamy transfer. Warunek startu zrealizujemy "ręcznie" poprzez operację na pinach, a wysyłanie danych wykona za nas obiekt Serial.

    Przykład uruchomiłem w PlatformIO pod ESP32 z Arduino SDK. Zacznijmy od najważniejszego - wysyłanie danych DMX:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Flush służy do wysłania oczekujących danych z portu szeregowego, potem sztucznie generujące warunek startu a następnie ponownie uruchamiam port i przesyłam nim dane.

    Ten konkretny pasek oczekuje danych w formacie RGBW - po bajcie na wartość. A więc można dodać pomocnicze funkcje, powiedzmy:
    - do ustawiania wszystkich kolorów na jedną wartość
    - do czyszczenia bufora
    - do ustawienia danego piksela na wybrany kolor
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Pora przetestować. Na koniec omówię podłączenie - 24V na zasilanie oraz RS485 na linie A i B. Nie potrzeba wspólnej masy, bo RS485 jest sygnałem różnicowym.
    Płytka ESP32 LilyGO T-CAN485 z podłączonym przewodem RS485 i taśmą LED RGBW.
    Czerwony:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Podświetlony czerwony fragment taśmy LED RGBW z widocznym układem scalonym
    Zielony:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Taśma LED RGBW podłączona do zasilacza laboratoryjnego, świecąca światłem zielonym
    I tak dalej. Zielony - ciemny:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Zwinięta taśma LED RGBW z aktywnymi zielonymi diodami obok zasilacza 24.3V
    Różne kolory:
    Zasilacz TP-1305 i podłączona taśma LED RGBW z aktywnymi kolorami
    Teraz sprawdźmy łączenie kolorów. Żółty (czerwony + zielony):
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Zbliżenie na świecący żółtym światłem odcinek taśmy LED RGBW
    Test poziomów jasności:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod




    Prosta animacja:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod






    Zbadajmy pobór prądu dla pięciometrowego fragmentu tego paska.
    Wszystkie zgaszone piksele - 0.46A przy 24.3V:
    Zasilacz pokazujący 0.46A i 24.3V oraz podłączona taśma LED RGBW w rolce
    Wszystkie zapalone - 1.94A przy 24.3V:
    Zasilacz laboratoryjny i świecąca taśma LED z przewodami podłączonymi do wyjścia
    Wniosek narzuca się sam. 12W standby (!!!) i 48W w trakcie pracy. Czyli 36W światła i 12W przepalone... na właśnie, co? Wygląda na to, że na zasilanie TM512AC. Potrzebny jest też do tego dzielnik rezystorowy, na którym troszkę się traci mocy:
    Schemat aplikacyjny RGBW z dwoma układami TM512AC4 i podłączeniem LED
    Nie analizowałem tego jednak głębiej. Zdecydowanie wygląda na to, że docelowy układ musi wykrywać wyłączenie paska i odłączać VDD...


    Podsumowując, protokół DMX512 opiera się o RS485 i składa się z prostego sygnału startowego oraz z danych wysyłanych w postaci poszczególnych bajtów. Ilość bajtów przypadających na odbiornik może się różnić, w przypadku paska LED z tematu mieliśmy 4 bajty na jeden kontroler (6 LEDów). Całość można łatwo wysłać z własnego programu na platformie ESP32, choć potrzebny jest też transceiver RS485, przykładowo MAX485. Może być on zintegrowany z naszą płytką - np. w przypadku użycia Lilygo T-Can485.
    Jedyny problem jaki napotkałem to pobór mocy paska przy zgaszonych diodach - wygląda na to, że potrzebny będzie tranzystor wyłączający całość gdy nie jest zapalona żadna dioda. Troszkę mnie to początkowo zaskoczyło, nie mam na ten moment drugiego egzemplarza by sprawdzić, czy tak jest w każdym przypadku.
    To była podstawowa prezentacja i udało mi się tu osiągnąć zamierzony efekt, choć to nie koniec przygód z tym paskiem. Planuję jeszcze co najmniej:
    - uruchomić go w moim firmware open source, wraz z dodatkowym pinem i tranzystorem odłączającym zasilanie (szkoda tych 12W...)
    - uruchomić go z WLED (obawiam się, że potrzebna będzie samodzielna kompilacja wsadu)
    - zbadać i opisać rolę nieomówionego jeszcze pinu od adresowania
    To na razie tyle, sam pasek wygląda obiecująco, ciekawe jak wyjdzie po montażu. Bardzo podoba mi się w nim obecność bieli, a te 6 diod na jeden kontroler można przeboleć, nie jest to stricte "per pixel" ale da się animować.
    Czy korzystaliście z pasków LED bądź z innych urządzeń sterowanych przez DMX512?

    [i]Pełen kod użyty do prezentacji zamieszczam w załączniku (projekt PlatformIO)
    Załączniki:
    • dmx-sample.rar (3.22 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14701 postów o ocenie 12747, pomógł 656 razy. Jest z nami od 2014 roku.
  • REKLAMA
  • #2 21645442
    Shadowix
    Poziom 31  
    Posty: 1400
    Pomógł: 191
    Ocena: 268
    Ciekawy temat.
    Producent deklaruje 19.5W/m, a przy zasilaniu 5m pobiera 48W z czego 12W to samo sterowanie...
  • REKLAMA
  • #3 21645913
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14701
    Pomógł: 656
    Ocena: 12747
    Mała aktualizacja. Walka z WLED wciąż trwa - są do pobrania buildy z DMX oraz jest jakiś kompilator online, ale mam wrażenie, że oni na sztywno ustawiają pin i muszę wyszukać jak go zmienić.
    Mój firmware z kolei już prawie wspiera DMX - wystarczyło rozdzielić backend WS2812 na poziomie samych bajtów, dodanie wsparcia ten sposób jest bardzo proste.
    A poza tym to znów musiałem dolutowywać kondensator do LilyGO by nie było brownoutów, ciągle nie wiem, czy to ja mam same złe kabelki USB, czy ta płytka tak ma:
    Zbliżenie na płytkę LilyGO z dolutowanym kondensatorem i podłączonym kablem USB
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #4 21649222
    keseszel
    Poziom 26  
    Posty: 4101
    Pomógł: 54
    Ocena: 558
    Gdzie kupiona, jak długo ewentualnie czekałeś na przesyłkę, jaka cena, powód kupna, co było za kupnem, co zniechęcało. Jak długo analizowane po rozbiórce.
  • REKLAMA
  • #5 21649237
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14701
    Pomógł: 656
    Ocena: 12747
    Paski LED zazwyczaj kupuję na chińskim portalu wysyłkowym, ostatnimi czasy wysyłają dość szybko, inpost lub poczta polska, do rąk własnych. Z tydzień czekania mniej więcej, ale nie przywiązuję do tego wagi.
    Różne opakowania i rolki pasków LED RGB oraz DMX, ułożone na drewnianym stole.
    Ten konkretny pasek z tematu dostałem po znajomości, więc sam go nie kupowałem, ale na zdjęciu jest nalepka polskiego importera.

    DMX był dla mnie zupełnie czymś nowym, nie wiedziałem nawet, że RS485 stosuje się do pasków LED. I tak jeszcze jego obsługa nie jest finalna, bo do tej pory nie wiem co z tym dodatkowym sygnałem od adresowania oraz muszę zrobić jakiś układ, by wyłączać pasek gdy jest zgaszony, bo 12W to za dużo jak na zgaszone światło.
    Pomogłem? Kup mi kawę.
  • #6 21691484
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14701
    Pomógł: 656
    Ocena: 12747
    Aktualizacja: udało się uruchomić DMX z WLED:
    Jak skompilować i skonfigurować WLED do obsługi DMX na LilyGo T-CAN485 ESP32?
    Wciąż brakuje tranzystora odcinającego prąd standby.
    Pomogłem? Kup mi kawę.
📢 Słuchaj (AI):
REKLAMA