
IoT prakticky: Python na ESP32 V – ovládanie displejov LED, LCD a OLED
V predchádzajúcej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32-IV--kniznica-octopus-na-obsluhu-hardveru-a-komunikacie sme ukázali konfiguráciu knižnice Octopus, ktorá obsahuje triedy funkcií na ovládanie rôzneho hardvéru a komunikačných rozhraní. Ukázali sme aj motivačný príklad, ako pomocou dvoch riadkov kódu je možné zobraziť čísla, alebo text na displeji zloženom zo sedem segmentových číslic, pričom doska displeja využíva zbernicu I2C, takže na pripojenie k doske mikrokontroléra jej stačia štyri vodiče. Pokračujeme predstavením možnosti displejov. Príklady sú vo videu
Doplnenie displeja je pre väčšinu amatérskych konštrukcií veľkou pridanou hodnotou, nielen pri finálnej funkcii, ale aj počas ladenia. Je to oveľa praktickejšie, než výpisy cez konzolovú aplikáciu.
Upozorňujeme, že na príklady v tejto časti musíte mať nainštalovanú knižnicu Octopus. Podprobný postup je v predchádzajúcej časti seriálu. Pomocou príkazu octopus() knižnicu inicializujete. Príkazom h() zobrazíte nápovedu. Vypíšeme len jej časť týkajúcu sa displejov
Príkazom ios nakonfigurujete zoznam používaného hardvéru. Poto je potrebné importovať funcie pre tento hardvér
Sériové zbernice na komunikáciu s displejmi
Najskôr stručne predstavíme komunikačé zbernice, ktoré sa používajú na komunikáciu s displejmi
Pomocou zbernice SPI (Serial Peripheral Interface) sa najčastejšie pripájajú displeje, externé pamäte, či A/D prevodníky, prípadne sa toto rozhranie využíva pre vzájomnú komunikáciu medzi viacerými mikrokontrolérmi. V systéme využívajúcom rozhranie SPI môže byť zapojených dva alebo viac obvodov, pričom jeden z nich je označovaný ako Master, ktorý riadi komunikáciu a ostatné sú označované ako Slave. Komunikácia prebieha pomocou štyroch vodičov MOSI (Master Out, Slave In), MISO(Master In, Slave Out), hodinového signálu SCK, a SS (Slave Select).
I2C. je dvojvodičová obojsmerná sériová zbernica, určená napríklad na komunikáciu jednočipových procesorov s podriadenými obvodmi. Vodič SDA je určený na prenos sériových dát a vodič SLC na prenos taktovacieho signálu.
LED displeje
Ukážeme príklad pre obsluhu sedem segmentového displeja, pripojeného cez SPI. Displej má sériový driver MAX7219 a je zložený z dvoch modulov po 4 znaky, spolu je teda možné zobraziť 8 znakov.
Displej sa k mikrokontroléru pripája pomocou piatich vodičov a využíva rozhranie SPI
- VCC - Napájacie napätie 3.3 V
- GND - elektrická zem
- DIN - data input - pripája sa na pin D23, ktorý má alternatívnu funkciu MOSI
- CS - chip select - pripája sa na pin D5 s funkciou CS0
- CLK - clock, taktovací signál pripája sa na pin D18 s alternatívnou funkciou SCLK
Môžete zreťaziť viac displejov, pričom výstup DOUT z jedného displeja pripojíte na DIN druhého displeja.
Pripojenie na piny 30 pinového modulu ESP 32
Displej je potrebné inicializovať príkazom disp7_init(). Príkaz odovzdá inštanciu objektu d7.
Alebo aj textový reťazec, pretože na 7 segmentovom displeji sa dá zobraziť aj hodne písmen, avšak nie všetky.
Jednotlivé segmenty sú adresované takto:.
Bodka za číslom má kód 128. Môžete použiť aj binárnu kombináciu týchto konštánt a rozsvietiť viac segmentov súčasne
blikajúca pomlčka segmentu
blikajúca bodka
Knižnica Octopus podporuje aj zobrazovanie na maticovom LED displej 8x8 s obvodom MAX7219.
Tento displej sa pripája rovnako ako sedem segmentový v predchádzajúcej časti, čiže pomocou signálov VCC, GND, DIN, CS a CLK. Aj tieto displeje môžete zoradiť do kaskády s cieľom zobraziť viac znakov. Trieda pre obsluhu displeja sa inicializuje
Schéma pripojenie maticového displeja k mikrokontroléru
LCD displeje
LCD displeje Rozdeľujú sa na grafické a znakové. Grafický displej umožňuje na kontinuálnej matici bodov zobraziť grafické obrazce a samozrejme aj text rôznym fontom. Znakové displeje sú v podstate tiež maticové, akurát matice pre každý znak sú oddelené. Znakové displeje umožňujú zobraziť rôzne dlhý text v jednom, alebo viacerých riadkoch. Displeje sú k dispozícii v konfigurácii 8x1, čiže 8 znakov v jednom riadku až po 40 x 4, čiže 4 riadky, pričom každý z nich môže mať 40 znakov. Programové ovládanie týchto displejov je pomerne jednoduché. Nastavíte kurzor na miesto kde chcete mať znak, alebo začiatok textu a pošlete znak, alebo text.
![]() |
![]() |
Alfanumerické displeje využívajú ako radič obvod Hitachi HD44780. Radič má riadiaci a dátový register. V pamäti ROM má napevno uložené definície 208 znakov v matici 5 × 8 bodov a 32 znakov v matici 5 × 10 bodov. Zlou správou pre našinca je, že tam nie sú znaky so slovenskou diakritikou. Tie môžete v matici 5 × 8 bodov definovať do pamäte typu CGRAM. Obrazová pamäť RAM obsahuje aktuálne zobrazený text. Displej tohoto typu môžete pripojiť aj cez sériovú zbernicu I2C pomocou dvoch dátových pinov (SDA a SCL) + dvoch pinov na napájanie. Dá sa kúpiť displej už s takýmto rozhraním, alebo dosku, ktorá sa nasadí na 16 pinový konektor displeja a pripojí cez I2C.
Displej sa k mikrokontroléru pripája pomocou štyroch vodičov a využíva rozhranie I2C. Displej vyžaduje napájacie napätie 5V
- SCL - pripája sa na pin D22, ktorý má alternatívnu funkciu I2C_SCL
- SDA - pripája sa na pin D21, ktorý má alternatívnu funkciu I2C_SDA
- GND - elektrická zem
- VCC - Napájacie napätie 5 V
Pripojenie na piny 30 pinového modulu ESP 32
Displej sa inicializuje príkazom:
Príkazom d2.TAB (kláves tabulátor) môžete vypísať metódy triedy
Na výpis textu použijete napríklad príkaz
Pomocou I2C rozhrania sa pripájajú aj maticové OLED displeje. Najpraktickejšie sú displeje s rozlíšením 128 x 64. Pripájajú sa rovnako ako viacriadkové LCD displeje
- SCL - pripája sa na pin D22, ktorý má alternatívnu funkciu I2C_SCL
- SDA - pripája sa na pin D21, ktorý má alternatívnu funkciu I2C_SDA
- GND - elektrická zem
- VCC - Napájacie napätie 5 V
Displej sa inicializuje príkazom:
Zoznam metód objektu
Text vypíšete príkazmi
V budúcom pokračovaní sa budeme venovať obsluhou LED diód, farebných RGB LED diód a farebných diód Neopixel
Rekapitulácia seriálu
V prvej časti seriálu https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32--vyvojove-dosky--instalacia-Micropythonu sme predstavili vývojové dosky s ESP32 a ukázali postup, ako do vývojovej dosky nahrať interpreter programovacieho jazyka Python, konkrétne implementáciu Micropython od octopusLab.cz.
V druhej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32--popis-portov-a-rozhrani sme predstavili piny rozhrania.
V tretej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32-III--prve-pokusy-s-hardverom sme ukázali obsluhu vstupných a výstupných portov
V štvrtej časti https://www.pcrevue.sk/a/IoT-prakticky--Python-na-ESP32-IV--kniznica-octopus-na-obsluhu-hardveru-a-komunikacie je postup inštalácie a konfigurácie knižnice Octopus od českej firmy octopuslab.cz, ktorá obsahuje veľa funkcií na obsluhu hardvéru a komunikačných rozhraní.
Zobrazit Galériu