Serwisy partnerskie:
Close icon
Serwisy partnerskie

Wokół Arduino: wyświetlacze graficzne cz.6 - schematy i przykłady

Obecnie największe zainteresowanie elektroników budzą małe kolorowe wyświetlacze i ekrany dotykowe. Budzą zainteresowanie, ale też liczne pytania, wątpliwości i obawy. Nic dziwnego, sytuacja rynkowa szybko się zmienia, dostępne są liczne mniejsze i większe wyświetlacze o różnych właściwościach i co ważne, mające różne, często niezbyt wygodne do wykorzystania interfejsy. W niniejszym kilkuczęściowym artykule przedstawione są różne aspekty zagadnienia, które osobom zainteresowanym rozjaśnią obraz sytuacji i pomogą praktycznie wykorzystać różne wyświetlacze i ekrany.
Article Image

Zgodnie z zapowiedzią, nieco bliżej przyjrzymy się najpopularniejszym dziś wyświetlaczom graficznym OLED 128×64 o przekątnej ekranu 0,96 cala oraz 1,3 cala. Jako sterownik pracuje w nich albo omówiony wcześniej układ SSD1306, albo bardzo podobny SH1106. „Surowe” moduły montowane są na różnych płytkach drukowanych, a oferta rynkowa jest bardzo szeroka.

Jak już wiemy, sterownik SSD1306, a także SH1106, oferuje do wyboru interfejsy równoległe I8080, M6800, szeregowe 3- i 4-przewodowe oraz dwuprzewodowy I2C.

Trudno znaleźć moduły „płytkowe” z interfejsem równoległym (I8080, M6800), choć i takie są produkowane – przykład pokazany na fotografii 17 pochodzi ze strony hackspark.fr.

Fot.17 Moduł „płytkowy” z interfejsem równoległym (I8080, M6800)

Jednak w zdecydowanej większości modułów „płytkowych” producent dokonał wyboru interfejsu. Powszechnie dostępne są nieco różniące się szczegółami moduły z interfejsem szeregowym SPI i/lub I2C, niektóre z wyprowadzoną linią Reset – fotografia 18. W większości łatwo zmienić interfejs SPI/I2C, odpowiednio lutując zworki na płytce drukowanej. Prawie wszystkie mają na płytce stabilizatory LDO 3,3V, co pozwala zasilać moduł także napięciem 5V. Niektóre mają też translatory poziomów 5V/3,3V.

Fot.18 Moduły płytkowych wyświetlaczy OLED z interfejsem szeregowym SPI i I2C

Jednak najpopularniejsze są moduły z interfejsem I2C, które mają tylko cztery wyprowadzenia (fotografia 19). Sterownik SSD1306 oraz SH1106 dają możliwość wyboru jednego z dwóch adresów I2C, co w większości wersji jest realizowane na płytce drukowanej za pomocą zworki. Adresy w podstawowym systemie interfejsu I2C są siedmiobitowe. Na modułach wyświetlaczy z interfejsem I2C adresy podawane są w postaci dwucyfrowej liczby szesnastkowej (ośmibitowej), co budzi wątpliwości i bywa przyczyną pomyłek. Szczegóły są omówione w kursie Arduino.

Fot.19 Moduły płytkowych wyświetlaczy OLED z interfejsem I2C

W artykule celowo przedstawione jest aż tyle fotografii różnych wersji modułów „płytkowych” wyświetlaczy OLED 128×64 ze sterownikami SSD1306 i SH1106. Już te fotografie wskazują, że budowane są one według różnych schematów, co bywa przyczyną kłopotów. Przykładem jest łatwy do znalezienia, bardzo dziwnie narysowany schemat z rysunku 20, na którym widzimy symbol tranzystora. Na szczęście autor schematu podał typ: XC6206. Nie jest to tranzystor, tylko stabilizator LDO produkcji Torex.

Rys.20 Schemat modułu „płytkowego” wyświetlacza OLED 128×64 ze sterownikami SSD1306 i SH1106

W Internecie można znaleźć wiele schematów tego rodzaju wyświetlaczy, najczęściej narysowanych przez hobbystów, którzy odtworzyli schemat z zakupionej płytki. Pierwszy lepszy znaleziony schemat może dotyczyć modułu innego niż posiadany lub zawierać błędy. Trzy dalsze przykłady „internetowych” schematów pokazują rysunki 21...23.

Rys.21 Przykład amatorskiego schematu mmodułu wyświetlacza OLED  
Rys.21 Przykład amatorskiego schematu mmodułu wyświetlacza OLED 1
Rys.23 Przykład amatorskiego schematu mmodułu wyświetlacza OLED
Rys.22 Przykład amatorskiego schematu mmodułu wyświetlacza OLED

Schematy są podobne, ponieważ w sumie muszą się zgadzać z zaleceniami z kart katalogowych. Różnice często dotyczą obwodu resetowania i możliwości wyboru konfiguracji. Kluczową sprawą jest obecność lub brak stabilizatora 3,3V. Moduły, które stabilizatora nie mają, NIE mogą być zasilane napięciem 5V.

Większość modułów zawiera stabilizatory 3,3V, ale nie ma układów translacji poziomów logicznych 5V/3,3V. Pomimo tego braku są dołączane do 5-woltowych systemów (w tym Arduino). W przypadku I2C nie ma większego problemu, bowiem działanie tego łącza polega w sumie na zwieraniu linii do masy, a rezystory podciągające są dołączone w module wyświetlacza do napięcia 3,3V.

Kłopot może być w przypadku łącza szeregowego SPI (oraz równoległego): w karcie katalogowej jest wyraźna informacja, że maksymalne napięcie wejściowe nie powinno przekraczać „logicznego” napięcia zasilania VDD o więcej niż 0,3V, jak pokazuje rysunek 24 z katalogu SSD1306.

Podobnie jest z SH1106. Wykorzystując moduły wyświetlaczy, zawsze trzeba zwracać uwagę na dopuszczalne napięcia zasilające i wejściowe oraz na właściwości użytych bibliotek. Tym bardziej że moduły „płytkowe” wyświetlaczy o nieco większej rozdzielczości nie mają powolnego interfejsu I2C, tylko szybsze: SPI albo równoległy – przykład na fotografii 25 pokazuje kolorowe moduły LCD 240×320 o przekątnej ekranu 2,8 cala z różnymi interfejsami.

Rys.24 Maksymalne napięcia wejściowe (SSD1306)
Rys.25 Moduły płytkowych wyświetlaczy OLED z interfejsami SPI albo równoległymi

W Internecie można znaleźć schematy podłączenia takich 3,3-woltowych modułów do 5-woltowych płytek Arduino. Dwa przykłady na rysunkach 26, 27.

W wyświetlaczach o jeszcze większej rozdzielczości wykorzystywane są jeszcze szybsze interfejsy rodziny LVDS. Takich wyświetlaczy na pewno nie obsłuży żadna z klasycznych płytek Arduino, i z uwagi na małą moc obliczeniową, i brak w Arduino potrzebnych interfejsów. Do ich obsługi wykorzystywane są m.in. szybkie procesory STM oraz Raspberry Pi, zasilane napięciem 3,3V lub niższym.

Rys.26 Schemat podłączenia 3,3-woltowego modułu do 5-woltowej płytki Arduino
Rys.27 Schemat podłączenia 3,3-woltowego modułu do 5-woltowej płytki Arduino

Na rynku jest dziś mnóstwo tanich modułów graficznych wyświetlaczy „płytkowych” monochromatycznych i kolorowych. Nie trzeba się ich bać. Ogólne zasady ich konstrukcji i obsługi są podobne. Ich podłączenie jest w sumie bardzo proste, wystarczy pojedyncze napięcie zasilania, najlepiej 3,3V. Z dostępnych interfejsów najczęściej wybierany jest I2C oraz szeregowy SPI (z ewentualnym translatorem poziomów).

Omówiliśmy podstawowe zagadnienia sprzętowe. W następnym odcinku będziemy omawiać aspekty informatyczne.

Tematyka materiału: OLED
AUTOR
Źródło
Elektronika dla Wszystkich kwiecień 2020
Udostępnij
UK Logo