
Wyświetlacz 7-segmentowy RGB z diodami WS2812B
Kupienie wyświetlaczy o dużych gabarytach nie jest problemem, gorzej gdy jest potrzebny wyświetlacz mogący świecić w różnych barwach. Prezentowany wyświetlacz z wbudowanym sterownikiem można obsługiwać przez UART, I2C lub SPI. Pozwala na uzyskanie 24-bitowej palety barw.
Budowa i zasada działania
Schemat wyświetlacza pokazany jest na rysunku 1.
Napięcie zasilające 5 V doprowadzone jest do złącza J2. Dioda D1 zabezpiecza stabilizator U1, a co za tym idzie mikrokontroler U2 przed skutkami błędnego podłączenia zasilania. Napięcie 3,3 V z wyjścia stabilizatora U1 zasila mikrokontroler, który steruje diodami wyświetlacza. W urządzeniu wykorzystano tani, dobrze wyposażony mikrokontroler ARM SMT32G030F6P6, który przy cenie porównywalnej do Tiny3216 (także w obudowie 20 pin) oferuje parametry widoczne w tabeli 1.
Jak można wywnioskować z tabelki, w takim projekcie należy zapomnieć o AVR a także o Arduino! Jeśli będzie to AVR, to jest zbyt wolny i nie ma DMA, przez co jest jeszcze wolniejszy. Jeśli inne rozwiązania (np. ESP32), to zbyt drogie (około 3 razy) w stosunku do STM32G030F6P6. Gdy ktoś się uprze, to i na AVR zrealizuje projekt, ale… w czasie transmisji do WS2812 zazwyczaj są zawieszane przerwania. Jeśli transmisja jest realizowana na przerwaniach, co jest możliwe i było pokazane w „Elektronice Dla Wszystkich 5/2020”, to szybkość transferu po I2C, SPI, czy UART będzie ŻENUJĄCA ze względu na to, że komunikacja z WS2812 pochłonie ponad 90% czasu CPU, natomiast gdy na czas transmisji do WS2812 wyłączone będą przerwania, to ramki po I2C, SPI, UART będą gubione.
Jak widać, AVR są drogie jak na swoje możliwości. Xmega są lepsze, ale drogie w stosunku do ARM i przy porównywalnej cenie mają mniejsze zasoby.
W wyświetlaczu 35 diod WS2812B jest ułożonych na wzór wyświetlacza 7-segmentowego, dodatkowe trzy diody symbolizują kropkę. Diody są sterowane przez UART mikrokontrolera. Rezystor R2 podciąga wyjście UART do 5 V, co gwarantuje poprawne wysterowanie diody WS2812B. Jak to możliwe, że wyjście mikrokontrolera zasilanego z 3,3 V można podciągnąć do 5 V? Samo włączenie trybu otwarty dren (rysunek 2) nie rozwiązałoby problemu,
ponieważ na wyprowadzeniu UART znajdują się diody zabezpieczające (rysunek 3), przez co napięcie z rezystora R2 zostałoby ograniczone do napięcia zasilania powiększonego o spadek napięcia na diodzie zabezpieczającej. Prawdopodobnie to by wystarczyło, bo napięcie na takim wyprowadzeniu wynosiłoby 3,7…3,9 V, a diody WS2812 wymagają w stanie wysokim, napięcia wynoszącego 70% napięcia zasilania, co przy zasilaniu ich napięciem 5 V daje 3,5 V.
(…)
——– ciach! ——–
To jest tylko fragment artykułu, którego pełna wersja ukazała się w numerze czerwcowym czasopisma Zrozumieć Elektronikę (ZE 6/2024). Pełną wersję czasopisma znajdziesz pod tym linkiem. Natomiast niepełna, okrojona wersja, pozwalająca zapoznać się z zawartością numeru ZE 6/2024 znajduje się tutaj.
Sas
sas.ze@vp.pl
Uwaga! Wskazówki, jak nabyć archiwalne numery znajdują się na stronie: https://piotr-gorecki.pl/n11
Chodzi o ZE 6/2024.