TFT obrazovky řízené čipem ST7789VI Jsou vynikající volbou pro Arduino a další projekty mikrokontrolérů. Tyto malé obrazovky s vysokým rozlišením vám umožní zobrazit grafiku, text a obrázky jasně a přesně. Jeho integrace však může být poněkud náročná pro ty, kdo neznají protokoly, jako je SPI nebo požadavky na napájení a řízení. V této příručce se ponoříme do všech aspektů připojení, používání knihoven a konfigurace těchto obrazovek s vaším Arduinem.
Navíc se naučíte, jak je propojit s různými deskami, jako je NodeMCU ESP8266 a klasické Arduino Nano. Tímto způsobem budete moci naplno využít grafické a technické možnosti tohoto typu displejů, ať už pro projekty internetu věcí (IoT) nebo pro jakýkoli jiný typ aplikací, bez závislosti na SD kartách nebo složitých obvodech.
Co je to TFT displej s ovladačem ST7789VI?
Obrazovky TFT (Tenkovrstvý tranzistor) se vyznačují tím, že nabízejí kvalitu obrazu mnohem lepší než jiné typy obrazovek, jako jsou běžné LCD nebo menší OLED. Ovladač ST7789VI Je to mozek těchto obrazovek, který je zodpovědný za zpracování signálů, které do něj posílá mikrokontrolér, jako je Arduino nebo ESP8266, a převádění těchto signálů na obrázky, barvy a komplexní grafiku.
Jednou z velkých výhod těchto displejů je, že využívají komunikační sběrnici SPI, která zjednodušuje propojení s většinou mikrokontrolérů, a to pouze pomocí čtyř ovládacích pinů (SDA, SCL, RES a DC). To umožňuje výrazně snížit kabeláž a je ideální pro kompaktní projekty.
Propojení TFT obrazovky s čipem ST7789VI
Aby bylo možné s těmito obrazovkami pracovat, je nezbytné vědět, jak je správně připojit k vašemu Arduinu nebo ESP8266. V závislosti na používaném mikrokontroléru se mohou napájecí a připojovací kolíky mírně změnit. Níže uvádíme nejdůležitější spojení.
Základní připojení:
- VCC: Připojuje se k napájecímu signálu, který je obvykle 3.3 V (ne 5 V, aby nedošlo k poškození obrazovky).
- GND: Je připojen k zemi.
- SCL (někdy označeno CLK): Toto je pin sériového hodin a jde do D13 na talíři Arduino Uno nebo Nano.
- SDA (také označený MOSI): Je to pin, který odesílá data a připojuje se k D11.
- RES: Připojuje se ke kolíku odpovědnému za resetování obrazovky; v tomto případě na D8 z Arduina.
- DC: Příkazový/datový pin, který se připojuje k D9.
Ohledně desek ESP8266, zjistíte, že tyto pracují na 3.3V, takže se nebudete muset starat o nastavování úrovní napětí, jako je tomu u Arduina, kde je nutné použít napěťové děliče s odpory pro ochranu řadiče displeje.
Používání knihoven v Arduinu
Jakmile správně provedete všechna připojení, budete muset nainstalovat některé knihovny do Arduino IDE. Pro práci s těmito obrazovkami je nejpoužívanější možností knihovna Adafruit ST7789, který je vysoce kompatibilní s hardwarem těchto displejů a můžeme jej používat společně s knihovnou Adafruit GFX k vytvoření pokročilé grafiky.
Chcete-li nainstalovat knihovny, postupujte takto:
- Přejít na Skica -> Zahrnout knihovnu -> Spravovat knihovny.
- Napište ST7789 ve vyhledávacím poli a vyberte možnost Adafruit.
- Udělejte totéž pro knihovnu Adafruit GFX.
S těmito dvěma již nainstalovanými knihovnami budete připraveni napsat svůj první kód a zobrazit obrázky, text nebo jakoukoli grafiku, kterou chcete.
Základní kód pro "Hello, World!" na TFT obrazovce
Dobrým výchozím bodem pro testování obrazovky je zobrazení jednoduchého "Hello, World!" na obrazovce. Níže vám ukážeme základní kód, který můžete pro tento účel použít. Pamatujte, že tento kód je navržen tak, aby Arduino Uno nebo Nano, ale pokud používáte jiné desky, možná budete muset upravit kolíky.
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup() {
tft.init(240, 240);
tft.setRotation(1);
tft.fillScreen(ST77XX_BLACK);
tft.setTextColor(ST77XX_WHITE);
tft.setTextSize(2);
tft.setCursor(50, 120);
tft.println("Hello World!");
}
void loop() {
// Nada que hacer en el loop
}
Tento malý kód inicializuje obrazovku, otočí ji vodorovně a uprostřed zobrazí text „Hello World“. Pomocí metod můžete experimentovat s různými velikostmi textu nebo barvami setTextColor, setTextSize, Mimo jiné.
Grafické možnosti displeje ST7789VI
Grafické možnosti těchto obrazovek jsou zcela kompletní. S knihovnou Adafruit GFX můžete pomocí několika příkazů kreslit čáry, obdélníky, kruhy a mnoho dalšího. Níže uvádíme některé z nejpoužívanějších:
- kreslení čáry(x0, y0, x1, y1, barva): Nakreslete čáru z bodu (x0, y0) do (x1, y1).
- fillRect(x, y, š, v, barva): Nakreslí na obrazovku vyplněný obdélník.
- fillCircle(x, y, r, barva): Nakreslete plnou kružnici o poloměru r z bodu (x, y).
Tyto základní metody vám umožní rychle oživit obrazovku, ale knihovna také umožňuje importovat obrázky Bitmap, což je velmi užitečné, pokud chcete zobrazit složité grafy.
Chcete-li pracovat s obrázky, budete je muset předem převést do formátu, kterému Arduino rozumí, jak vysvětlíme později.
Importujte obrázky na obrazovku bez použití karty SD
Obecně platí, že načítání obrázků na obrazovku TFT vyžaduje připojenou kartu SD, na které se obrázek ukládá a umožňuje z něj načítání. Tomuto kroku se však můžeme vyhnout převodem obrázků do bitmapového kódu a jejich uložením přímo do paměti mikrokontroléru.
Proces je jednodušší, než se zdá. K převodu obrázku a následnému vložení do souboru záhlaví stačí použít nějaký software. Zde vám ukážeme, jak postupovat:
- Vyberte si obrázek, nejlépe 240x240 pixelů (velikost displeje).
- Použijte program jako Převodník obrázků LCD převést obrázek na pole hodnot.
- Uložte vygenerované pole a zkopírujte data do souboru záhlaví (.h) vašeho projektu Arduino.
Pak s použitím funkce pushImage() z knihovny Adafruit ST7789 můžete načíst toto pole a zobrazit příslušný obrázek.
Pamatujte, že tato metoda je ideální pro malé a středně velké projekty, protože paměťová omezení mikrokontroléru mohou pracovat proti vám, pokud se pokusíte načíst mnoho velkých obrázků najednou.
A konečně, práce s TFT obrazovkami s ST7789VI ve vašich projektech Arduino nebo ESP8266 otevírá svět grafických možností. Se správnou konfigurací a správnými softwarovými nástroji můžete implementovat atraktivní a funkční rozhraní bez příliš mnoha překážek.