Powrót

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.

Rysunek 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.

Tabela 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.

Rysunek 2

Rysunek 3

(…)

——– 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! Osoby, które nie są (jeszcze) stałymi Patronami ZE, mogą nabyć PDF-y z pełną wersję tego numeru oraz wszystkich innych numerów czasopisma wydanych od stycznia 2023, „stawiając kawę” (10 złotych za jeden numer czasopisma w postaci pliku PDF).
W tym celu należy kliknąć link (https://buycoffee.to/piotr-gorecki), lub poniższy obrazek
Postaw mi kawę na buycoffee.to
Następnie wybrać:
– jeśli jeden numer ZE – 10 zł,
– jeśli kilka numerów ZE – WSPIERAM ZA. I tu wpisać kwotę zależną od liczby zamawianych numerów – wydań (N x 10 zł),
Wpisać imię nazwisko.
Podać adres e-mail.
Koniecznie zaznaczyć: „Chcę dołączyć wiadomość dla Twórcy” i tu wpisać, który numer lub numery mamy wysłać na podany adres e-mailowy. Jeśli ma to być numer z tym artykułem trzeba zaznaczyć, że chodzi o ZE 6/2024.
UWAGA!!! E-mail z linkiem do materiałów (weTransfer) wysyłamy zazwyczaj w ciągu 24 godzin. Czasem zdarza się jednak, że trafia do spamu. Jeśli więc nie pojawi się w ciągu 48 godzin prosimy sprawdzić w folderze spam, a ewentualny problem zgłosić na adres: kontakt@piotr-gorecki.pl.