|

Projekt testera wyświetlaczy TFT na ESP32

Projekt testera wyświetlaczy TFT na ESP32

Wprowadzenie

Wyświetlacze TFT o rozdzielczości 240×320 pikseli przekątne ok. 2.2–3.2 cala są szeroko stosowane w projektach z mikrokontrolerami. Często spotykane są w nich kontrolery ILI9341 lub ST7789 oba te sterowniki obsługują taki format obrazu 240×320 i dzięki dużej dostępności oraz prostemu podłączeniu są chętnie wybierane przez hobbystów do tworzenia kolorowych interfejsów graficznych. W naszej praktyce pojawiła się potrzeba szybkiego sprawdzania działania takich wyświetlaczy, losowo wybranych sztuk z nowych dostaw oraz egzemplarzy zwróconych przez klientów. Aby usprawnić ten proces, zaprojektowaliśmy prosty tester wyświetlaczy TFT oparty na module ESP32.

Tester automatycznie wyświetla na ekranie serię kolorowych grafik testowych, pozwalając ocenić czy dany moduł działa prawidłowo. Urządzenie zostało zaprojektowane tak, by obsłużyć dwa najpopularniejsze sterowniki ILI9341 oraz ST7789. Wybierane przy pomocy prostej zworki. Dzięki temu jednym przyrządem możemy testować różne modele wyświetlaczy 2.2″, 2.4″, 2.8″ i 3.2″. Projekt jest na tyle nieskomplikowany, że może go zbudować samodzielnie nawet początkujący elektronik. Poniżej opisujemy krok po kroku montaż, podłączenie, a także zasadę działania naszego testera.

Lista komponentów

Do zbudowania testera będziemy potrzebować garść niedrogich, łatwo dostępnych elementów elektronicznych. Poniżej znajduje się lista komponentów użytych w projekcie

ElementOpis
ESP3 38-pin z układem CP2102popularna płytka rozwojowa z mikrokontrolerem ESP32
Wyświetlacz TFT 2.2″, 2.4″, 2.8″ lub 3.2″ 240×320wyświetlacz z kontrolerem ILI9341 albo ST7789 do testowania
Uniwersalna płytka PCB 6x8cm dwustronnado zamontowania złączy
Gniazdo goldpin 1×19 pin żeńskie proste 2.54mm dwie sztukido zamontowania ESP32 w płytce prototypowej
Gniazdo goldpin 1×14 pin żeńskie proste 2.54mmzłącze do wpinania testowanego wyświetlacza
Gniazdo goldpin 1×8 pin żeńskie proste 2.54mmzłącze służące jako wspornik do wyświetlacza
Listwa goldpin męska 3-pin proste 2.54mmsłużąca do wyboru sterownika wyświetlacza
Zworka jumper 2.54mmzworka służąca do wyboru sterownika wyświetlacza
Przewody połączeniowecienkie przewody do połączenia modułu ESP32 z złączami

koszyk wszystkich użytych komponentów

Dlaczego wybraliśmy płytkę prototypową zamiast płytki stykowej?

Choć pierwsze projekty wielu hobbystów powstają na płytkach stykowych, w naszym przypadku zdecydowaliśmy się na wykonanie testera na płytce prototypowej PCB i to z kilku bardzo ważnych powodów:

✅ Stabilność połączeń

Na płytce stykowej przewody mogą łatwo się wysunąć, a styki z czasem tracą pewność kontaktu. W testerze, który ma służyć wielokrotnie i niezawodnie, to poważny problem. Lutując wszystko na płytce prototypowej, mamy trwałe i pewne połączenia, odporne na przypadkowe poruszenia czy transport.

✅ Kompaktowy i solidny montaż

Płytka prototypowa pozwala na uporządkowane rozmieszczenie złączy i elementów, dzięki czemu całość wygląda estetycznie i jest łatwa w obsłudze. Dodatkowo, zastosowanie podstawek pod ESP32 oraz wyświetlacz umożliwia wielokrotne wpinanie i wypinanie bez ryzyka uszkodzenia płyty.

✅ Długowieczność projektu

Płytki stykowe idealnie nadają się do prototypowania, ale jeśli projekt ma być używany regularnie, szczególnie jako narzędzie diagnostyczne to trwałość wykonania ma ogromne znaczenie. Lutowana płytka prototypowa to gwarancja, że urządzenie przetrwa setki testów bez żadnych luzów czy niedziałających linii.

✅ Możliwość łatwego transportu

Zmontowany tester na płytce PCB można z łatwością wrzucić do walizki narzędziowej, zabrać w teren, wysłać do serwisu czy używać w magazynie bez obaw, że coś się rozłączy. To kolejny praktyczny atut, który zdecydował o naszym wyborze.

Montaż i podłączenie sprzętowe

Montaż testera rozpoczynamy od przygotowania płytki uniwersalnej i odpowiedniego rozmieszczenia złączy. W naszym projekcie ESP32 nie jest przylutowane bezpośrednio do płytki zamiast tego zastosowaliśmy podstawkę z dwóch żeńskich listw goldpin 1×19, co umożliwia łatwe wyjmowanie i wymianę modułu ESP32 np. w razie potrzeby przeprogramowania na innym stanowisku lub uszkodzenia samej płytki. Dzięki temu projekt jest bardziej elastyczny i serwisowalny.

1. Przygotowanie podstawki pod ESP32

  • Umieść dwie listwy żeńskie 1×19 na płytce prototypowej tak, by pasowały dokładnie pod wyprowadzenia ESP32 (najlepiej przymierzając moduł przed lutowaniem).
  • Przylutuj je równo i solidnie będą pełniły rolę podstawki, w którą wsuwany będzie moduł ESP32.
  • Upewnij się, że listwy nie mają luzu poprawne połączenie zależy od dobrego styku.

2. Montaż złącza wyświetlacza

  • W górnej części płytki przylutuj listwę goldpin żeńską, dopasowaną do ilości pinów w wyświetlaczach 14 pinów w jednej linii.
  • To będzie gniazdo, do którego wsuwamy testowane ekrany TFT.

3. Montaż zworki sterownika wybór ILI9341 / ST7789

Po prawej stronie płytki przylutuj listwę goldpin 3-pinową i nałóż na nią zworkę. Służy ona do wskazania, który sterownik jest aktualnie używany.

Schemat działania:

  • Środkowy pin zworki podłącz do 3.3 V (zasilania)
  • Lewy pin podłącz do GPIO 22 (dla ST7789)
  • Prawy pin podłącz do GPIO 21 (dla ILI9341)

Dzięki temu tylko jeden z dwóch pinów GPIO 21 lub 22 jest w danym momencie podciągnięty do stanu wysokiego, w zależności od ustawienia zworki. Drugi pin pozostaje w stanie niskim, co pozwala w kodzie Arduino jednoznacznie rozpoznać, który typ wyświetlacza został wybrany. Ten układ z jedną zworką i dwoma pinami pozwala łatwo i szybko przełączać między wyświetlaczami ze sterownikami ST7789 i ILI934 bez potrzeby przepinania kabli czy zmiany kodu. Wystarczy przesunąć zworkę w lewo lub prawo.

4. Połączenia sygnałowe

Teraz czas na przewody łączące ESP32 ze złączem wyświetlacza oraz pinem zworki:

Wyświetlacz TFTPin ESP32Szczegóły
VCC3,3 VZasilanie wyświetlacza
GNDGNDMasa
CSGPIO 15Chip Select
RESETGPIO 4Reset
DCGPIO 2Data/Command
SDI (MOSI)GPIO 23SPI, dane do wyświetlacza
SCKGPIO 18SPI, zegar
LED3.3VPodświetlenie stałe
SDO (MISO)GPIO 19Opcjonalne np. dla SD
Zworka ILI9341GPIO 21Wejście wyboru sterownika
Zworka ST7789GPIO 22Wejście wyboru sterownika


Po wykonaniu połączeń sprawdź wszystkie ścieżki oraz styki szczególnie upewnij się, że piny zasilania nie są przypadkowo zwarte i że ESP32 stabilnie siedzi w podstawce.

Gotowy tester

Po zakończeniu lutowania, nasz tester TFT prezentuje się tak jak na zdjęciu:.

Widać tutaj:

  • gniazda do wpinania wyświetlacza TFT oraz jego podpórkę (u góry),
  • dwa rzędy gniazd żeńskich na ESP32 (na dole),
  • zworkę wyboru sterownika (po prawej stronie).

Ten układ pozwala na wielokrotne testowanie różnych ekranów, bez konieczności przepinania kabli czy modyfikowania kodu. Wystarczy tylko zmienić pozycję zworki i wpiąć inny wyświetlacz.

Czytelna grafika ułatwiająca obsługę

Aby dodatkowo ułatwić korzystanie z testera, zwłaszcza w warunkach warsztatowych lub magazynowych, postanowiliśmy dodać prostą kartkę z rysunkowym oznaczeniem funkcji zworki.Ta niewielka grafika pełni funkcję czytelnej ściągi, z której jasno wynika:

  • w którą stronę przestawić zworkę, jeśli testujemy wyświetlacz z układem ILI9341,
  • w którą stronę, jeśli mamy do czynienia z ST7789.

To bardzo przyspiesza pracę, zwłaszcza gdy tester trafia w ręce osoby, która nie zna dokładnej konfiguracji projektu. Dodatkowo nie trzeba za każdym razem zaglądać do dokumentacji lub schematów. Po prostu: zworka w lewo ST7789, zworka w prawo ILI9341.

Oprogramowanie testera

Sercem urządzenia jest prosty program na ESP32, który inicjalizuje wyświetlacz i wyświetla na nim testowe grafiki. Kod źródłowy przygotowaliśmy w środowisku Arduino IDE jest on dostępny do pobrania poniżej:


Poniżej omówimy najważniejsze aspekty działania programu.

Konfiguracja sterowników: Na początku program odczytuje stan wejścia podłączonego do zworki sterownika. Na tej podstawie ustala, z którym typem wyświetlacza ma pracować. Przykładowo: załóżmy, że zworka założona w lewnej pozycji oznacza ST7789, a w prawej pozycji ILI9341. W setupie mikrokontrolera wykonujemy digitalRead() tego pinu w zależności od wyniku wybieramy odpowiedni driver. Dzięki takiemu rozwiązaniu nie trzeba zmieniać kodu dla różnych wyświetlaczy, wystarczy przestawić zworkę.

Biblioteki graficzne: Do obsługi wyświetlaczy wykorzystaliśmy gotowe biblioteki, co upraszcza napisanie testu. Można użyć np. Adafruit GFX wraz z bibliotekami Adafruit_ILI9341 i Adafruit_ST7789 udostępniają one wygodne funkcje do rysowania tekstu, kształtów i pikseli. Przed kompilacją programu należy doinstalować te biblioteki poprzez Menedżer Bibliotek Arduino. Oczywiście nic nie stoi na przeszkodzie, aby użyć innej biblioteki np. TFT_eSPI lub własnych implementacji ważne, by obsłużyć oba typy kontrolerów.

Inicjalizacja wyświetlacza: Po starcie, program konfiguruje wyświetlacz: ustawia odpowiednie piny SPI, szybkość komunikacji oraz inicjuje ekran. Dla ILI9341 wywoływana jest metoda begin(), natomiast dla ST7789 często metoda init(nWidth, nHeight) z podaniem rozdzielczości (240×320). Różnice wynikają z charakterystyki bibliotek ale naszym celem jest, aby w obu przypadkach ekran został poprawnie zresetowany i gotowy do wyświetlania obrazu. W razie potrzeby kod uwzględnia także specyficzne ustawienia, np. odwrócenie kolorów niektóre matryce ST7789 wymagają inwersji kolorów, by wyświetlały poprawne barwy.

Testowe efekty na ekranie: Gdy wyświetlacz jest już zainicjalizowany, program przechodzi do wyświetlania prostych obrazów testowych. Można tu zastosować różne strategie. My zdecydowaliśmy się na wyświetlanie kolejno jednokolorowych ekranów i podstawowych kształtów, aby łatwo wychwycić ewentualne uszkodzenia matrycy lub problemy z kolorami. Przykładowo, program może:

  • Wypełnić ekran kolejno kolorami: czerwonym, zielonym, niebieskim (RGB) – pozwala to sprawdzić, czy każda składowa kolorów działa i czy nie występują artefakty.
  • Narysować siatkę linii lub prostokątów – to uwidacznia ewentualne martwe piksele lub błędy w adresowaniu kolumn i wierszy.
  • Wyświetlić krótki tekst (np. komunikat „TEST OK” lub nazwę sterownika) – co potwierdzi poprawność wyświetlania znaków i orientacji obrazu.

Oczywiście zakres testów można rozbudować wedle uznania. Ważne, aby wyniki były czytelne wizualnie tak, by od razu było widać, czy ekran działa prawidłowo. W naszym kodzie po wyświetleniu serii obrazów następuje ich cykliczne odświeżanie pętla loop powtarza test w kółko, dzięki czemu można obserwować ekran tak długo, jak potrzebujemy.

Uruchomienie i korzystanie z testera

Gdy sprzęt jest zmontowany, a oprogramowanie wgrane na ESP32, możemy przystąpić do właściwego testowania wyświetlaczy. Obsługa urządzenia jest bardzo prosta. Poniżej krótkie instrukcje:

  1. Wybór sterownika: Ustaw zworkę w odpowiedniej pozycji przed podłączeniem wyświetlacza. Jeśli testujesz ekran ze sterownikiem ST7789 załóż zworkę na piny oznaczone ST7789. Jeśli ekran ma ILI9341 przestaw zworkę na pozycję ILI9341.
  2. Podłączenie wyświetlacza: Wsuń ostrożnie wyświetlacz w złącze goldpin na płytce testera. Zwróć uwagę na prawidłowe wyrównanie pinów (VCC do 3.3V, GND do GND itd.). Źle wpięty moduł może nie działać, a nawet ulec uszkodzeniu.
  3. Zasilenie testera: Podłącz ESP32 do źródła zasilania. Najwygodniej użyć portu USB w module można podpiąć go do komputera lub powerbanku/ładowarki. ESP32 uruchomi się i automatycznie wystartuje program testowy.
  4. Obserwacja wyników: Jeśli wszystko jest w porządku, na ekranie od razu zobaczysz wyświetlane kolory, kształty lub tekst zgodnie z zaprogramowanym testem. Sprawdź, czy obraz jest stabilny, poprawnie wycentrowany, czy kolory są właściwe np. ekran czerwony jest naprawdę czerwony, a nie np. niebieski to wskazywałoby na zły sterownik lub konfigurację.
  5. Diagnoza usterek: Jeśli wyświetlacz nie pokazuje nic lub obraz jest zniekształcony, od razu wyłącz zasilanie i zweryfikuj ustawienia. Najpierw upewnij się, że zworka jest we właściwej pozycji zgodnej z testowanym modułem. Następnie sprawdź połączenia czy wszystkie wymagane piny mają dobry kontakt. Możliwe też, że dany egzemplarz wyświetlacza jest uszkodzony nasz tester pomaga to stwierdzić w ciągu kilku sekund.

Dzięki mobilności zasilanie z USB tester można łatwo używać na stanowisku pracy czy w magazynie, bez potrzeby uruchamiania komputera czy pisania oddzielnego programu pod każdy wyświetlacz. Wystarczy wpiąć ekran, zasilić układ i od razu wiadomo, czy moduł przechodzi test pomyślnie.

Prezentacja w praktyce

Na zakończenie zobaczmy tester w akcji poniżej prezentujemy trzy zdjęcia pokazujące wyświetlanie kolejnych kolorów na ekranie TFT z kontrolerem ILI9341. Program testowy w prosty sposób przechodzi przez trzy kolory podstawowe: zielony, niebieski i czerwony, wyświetlając przy tym odpowiednie opisy na ekranie.

Każdy ekran testowy zawiera:

  • wypełnienie tła wybranym kolorem zielony, niebieski, czerwony,
  • czarny tekst informujący o nazwie koloru oraz sterowniku wyświetlacza np. „Kontroler ILI9341”.

Zdjęcie 1: Test koloru zielonego

Na pierwszym ujęciu widać ekran wypełniony zielonym kolorem. W lewym górnym rogu pojawia się napis „Kolor: Zielony”, a poniżej „Kontroler ILI9341”. Ten ekran testowy sprawdza, czy matryca potrafi poprawnie wyświetlić składową zieloną. Jeśli zobaczysz inny kolor lub artefakty, może to oznaczać uszkodzony panel lub błędne ustawienia sterownika.

Zdjęcie 2: Test koloru niebieskiego

Drugi ekran pokazuje niebieskie tło z czarnym napisem „Kolor: Niebieski” oraz informacją „Kontroler ILI9341”. Dzięki temu testowi możesz ocenić, czy linie odpowiedzialne za podświetlenie składowej niebieskiej działają poprawnie. Ewentualne przebarwienia, smugi czy całkowity brak koloru sygnalizują problem z matrycą albo nieprawidłowym trybem pracy sterownika.

Zdjęcie 3: Test koloru czerwonego

Na trzecim zdjęciu ekran jest wypełniony czerwonym kolorem. Napis „Kolor: Czerwony” wraz z adnotacją „Kontroler ILI9341” potwierdza, że to właśnie składowa czerwona jest testowana. To kluczowy test dla wykrycia martwych pikseli lub nieścisłości w odwzorowaniu barwy czerwonej. Jeśli tło jest blade, nierówne lub pojawiają się przebarwienia, warto wymienić wyświetlacz lub zweryfikować połączenia.

Zdjęcie 4: Co się dzieje przy złym ustawieniu zworki?

Na tym zdjęciu pokazujemy sytuację, w której celowo przestawiono zworkę w niewłaściwą pozycję ekran TFT ze sterownikiem ILI9341 został uruchomiony w trybie dla ST7789. Skutki są natychmiast widoczne:

  • Wyświetlany kolor się nie zgadza – mimo że program ustawił kolor niebieski, ekran wyświetla czerwonawy odcień, co oznacza błędne przypisanie kanałów kolorów przez nieodpowiedni sterownik.
  • Napisy są odwrócone – tekst „Kolor: Niebieski / Kontroler ST7789” jest wyświetlony do góry nogami i lustrzanie, bo sterownik został błędnie zainicjowany i źle interpretuje dane obrazu.
  • Efekt wizualny wygląda jak artefakt – to nie błąd sprzętu, a nieprawidłowa konfiguracja programowa.

Ten przykład bardzo dobrze pokazuje, dlaczego istotne jest poprawne ustawienie zworki przed podłączeniem i zasileniem testera. Nawet jeśli fizyczne połączenia są poprawne, źle wybrany sterownik może dawać złudzenie uszkodzonego ekranu, podczas gdy problem leży po stronie oprogramowania.

✅ Jeśli po włączeniu testera widzisz dziwne kolory, teksty w złych miejscach lub brak obrazu – pierwsze, co należy sprawdzić, to ustawienie zworki!

Możliwe rozszerzenia test dotyku

Opisywany tester skupia się na sprawdzaniu części wyświetlającej modułu TFT. Wiele takich ekranów posiada jednak także panel dotykowy np. rezystancyjny z kontrolerem XPT2046. W obecnej wersji projektu nie wykorzystujemy funkcji dotyku piny dotykowe pozostają niepodłączone. Co dalej? Można pomyśleć o rozszerzeniu funkcjonalności testera o weryfikację działania panelu dotykowego. Taki tester dotyku mógłby po kalibracji odczytywać koordynaty dotyku i np. wyświetlać kropkę lub komunikat przy dotknięciu w różnych miejscach ekranu. Byłby to świetny sposób na sprawdzenie, czy warstwa dotykowa działa poprawnie czy reaguje na dotyk, czy jest precyzyjna, czy żadne z jej pól nie są „martwe”.

Chętnie przygotujemy kolejny wpis opisujący budowę i oprogramowanie testera do paneli dotykowych, wykorzystującego nasz obecny układ wystarczy dołożyć obsługę układu dotyku i kilka dodatkowych połączeń. Czy bylibyście zainteresowani takim projektem? Dajcie znać w komentarzach! Wasze opinie pomogą nam zdecydować, czy warto przedstawić rozszerzoną wersję testera obejmującą również testowanie dotyku. Jeśli macie też inne pomysły usprawnień podzielcie się nimi. Powodzenia w budowie własnych testerów!

Podsumowanie

Stworzony przez nas prosty tester TFT na ESP32 okazał się bardzo praktycznym narzędziem, szczególnie przydatnym w magazynie, serwisie czy warsztacie. Dzięki prostej konstrukcji i jednej zworke, umożliwia szybkie sprawdzenie poprawności działania wyświetlaczy z najpopularniejszymi sterownikami: ILI9341 oraz ST7789. Montaż jest nieskomplikowany, a całość oparta została na ogólnodostępnych komponentach.

To świetny projekt także dla początkujących pozwala poznać podstawy komunikacji SPI, obsługi wyświetlaczy TFT oraz pracy z bibliotekami graficznymi na ESP32. Dzięki zastosowaniu podstawki, moduł ESP32 można w łatwy sposób wymienić lub przeprogramować, co zwiększa funkcjonalność testera.

Wyświetlacze TFT powiązane z wpisem:

Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇


Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *