Ako používať TFT obrazovky s ST7789VI a Arduino: Kompletný sprievodca

  • Jednoduchá konektivita vďaka protokolu SPI vyžadujúca len štyri ovládacie kolíky.
  • Používanie knižníc Adafruit ST7789 a GFX na kreslenie pokročilej grafiky.
  • Možnosť načítania zložitých obrázkov bez potreby SD karty.

TFT obrazovka s ST7789VI a Arduino

TFT obrazovky riadené čipom ST7789VI Sú vynikajúcou voľbou pre Arduino a iné projekty mikrokontrolérov. Tieto malé obrazovky s vysokým rozlíšením vám umožňujú jasne a presne zobraziť grafiku, text a obrázky. Jeho integrácia však môže byť trochu náročná pre tých, ktorí nepoznajú protokoly ako SPI alebo požiadavky na napájanie a ovládanie. V tejto príručke sa ponoríme do všetkých aspektov pripojenia, používania knižníc a konfigurácie týchto obrazoviek pomocou vášho Arduina.

Okrem toho sa naučíte, ako ich prepojiť s rôznymi doskami ako je NodeMCU ESP8266 a klasické Arduino Nano. Týmto spôsobom budete môcť naplno využiť grafické a technické možnosti tohto typu displejov, či už pre projekty internetu vecí (IoT) alebo pre akýkoľvek iný typ aplikácie, bez závislosti na SD kartách alebo zložitých obvodoch.

Čo je to TFT displej s ovládačom ST7789VI?

Obrazovky TFT (Tenkovrstvový tranzistor) sa vyznačujú tým, že ponúkajú kvalitu obrazu oveľa vyššiu ako iné typy obrazoviek, ako sú bežné LCD alebo menšie OLED. Ovládač ST7789VI Je to mozog týchto obrazoviek, ktorý je zodpovedný za spracovanie signálov, ktoré do nich posiela mikrokontrolér, ako je Arduino alebo ESP8266, a za prevod týchto signálov na obrázky, farby a komplexnú grafiku.

Jednou z veľkých výhod týchto displejov je, že využívajú komunikačnú zbernicu SPI, ktorá zjednodušuje prepojenie s väčšinou mikrokontrolérov pomocou iba štyroch ovládacích pinov (SDA, SCL, RES a DC). To umožňuje výrazne znížiť kabeláž a je ideálne pre kompaktné projekty.

Pripojenie TFT obrazovky k čipu ST7789VI

Aby ste s týmito obrazovkami mohli pracovať, je nevyhnutné vedieť, ako ich správne pripojiť k vášmu Arduinu alebo ESP8266. V závislosti od používaného mikrokontroléra sa napájacie a pripojovacie kolíky môžu mierne zmeniť. Nižšie uvádzame najdôležitejšie spojenia.

Pripojenie TFT obrazovky s Arduino Nano

Základné pripojenia:

  • VCC: Pripája sa k napájaciemu signálu, ktorý je zvyčajne 3.3 V (nie 5 V, aby nedošlo k poškodeniu obrazovky).
  • GND: Je pripojený k zemi.
  • SCL (niekedy označené CLK): Toto je sériový hodinový kolík a ide do D13 na tanieri Arduino Uno alebo Nano.
  • SDA (tiež označené MOSI): Je to kolík, ktorý odosiela údaje a pripája sa k D11.
  • RES: Pripojí sa ku kolíku zodpovednému za resetovanie obrazovky; v tomto prípade pri D8 z Arduina.
  • DC: Príkazový/údajový pin, ktorý sa pripája k D9.

Čo sa týka tanierov ESP8266, všimnete si, že tieto pracujú pri 3.3V, takže sa nebudete musieť starať o nastavovanie úrovní napätia, ako je to v prípade Arduina, kde je potrebné použiť napäťové deličy s odpormi na ochranu ovládača displeja.

Používanie knižníc v Arduine

Keď máte všetky pripojenia správne vytvorené, budete musieť nainštalovať niektoré knižnice do Arduino IDE. Pre prácu s týmito obrazovkami je najpoužívanejšou možnosťou knižnica Adafruit ST7789, ktorý je vysoko kompatibilný s hardvérom týchto displejov a môžeme ho používať spolu s knižnicou Adafruit GFX na vytvorenie pokročilej grafiky.

Ak chcete nainštalovať knižnice, postupujte takto:

  • Choďte na Skica -> Zahrnúť knižnicu -> Spravovať knižnice.
  • zapísať ST7789 vo vyhľadávacom paneli a vyberte možnosť Adafruit.
  • Urobte to isté pre knižnicu Adafruit GFX.

S týmito dvoma knižnicami, ktoré sú už nainštalované, budete pripravení napísať svoj prvý kód a zobraziť obrázky, text alebo akúkoľvek grafiku, ktorú chcete.

Základný kód pre "Ahoj, svet!" na TFT obrazovke

Dobrým východiskovým bodom na testovanie obrazovky je zobrazenie jednoduchého "Ahoj, svet!" na obrazovke. Nižšie vám ukážeme základný kód, ktorý môžete na tento účel použiť. Pamätajte, že tento kód je navrhnutý tak, aby Arduino Uno alebo Nano, ale ak používate iné dosky, možno budete musieť prispôsobiť 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
}

Príklad TFT obrazovky so základným kódom

Tento malý kód inicializuje obrazovku, otočí ju vodorovne a v jej strede zobrazí text „Hello World“. Pomocou metód môžete experimentovať s rôznymi veľkosťami textu alebo farbami setTextColor, setTextSize, Okrem iného.

Grafické možnosti displeja ST7789VI

Grafické možnosti týchto obrazoviek sú celkom kompletné. Pomocou knižnice Adafruit GFX môžete pomocou niekoľkých príkazov kresliť čiary, obdĺžniky, kruhy a oveľa viac. Nižšie uvádzame niektoré z najpoužívanejších:

  • kreslenie čiary (x0, y0, x1, y1, farba): Nakreslite čiaru z bodu (x0, y0) do (x1, y1).
  • fillRect(x, y, š, v, farba): Nakreslí na obrazovku vyplnený obdĺžnik.
  • fillCircle(x, y, r, color): Nakreslite plnú kružnicu s polomerom r z bodu (x, y).

Tieto základné metódy vám umožnia rýchlo oživiť obrazovku, ale knižnica vám tiež umožňuje importovať obrázky Bitmáp, čo je veľmi užitočné, ak chcete zobraziť zložité grafy.

Ak chcete pracovať s obrázkami, budete ich musieť predtým previesť do formátu, ktorému Arduino rozumie, ako vysvetlíme neskôr.

Importujte obrázky na obrazovku bez použitia karty SD

Vo všeobecnosti si načítanie obrázkov na TFT obrazovku vyžaduje pripojenú SD kartu, na ktorej je uložený obrázok a umožňuje načítanie z neho. Tomuto kroku sa však môžeme vyhnúť prevedením obrázkov do bitmapového kódu a ich uložením priamo do pamäte mikrokontroléra.

Proces je jednoduchší, ako sa zdá. Na konverziu obrázka a jeho vloženie do súboru hlavičky stačí použiť nejaký softvér. Tu vám ukážeme, ako postupovať:

  • Zvoľte si obrázok, najlepšie 240x240 pixelov (veľkosť displeja).
  • Použite program ako napr LCD Image Converter previesť obrázok na pole hodnôt.
  • Uložte vygenerované pole a skopírujte údaje do súboru hlavičky (.h) vášho projektu Arduino.

Potom s použitím funkcie pushImage() z knižnice Adafruit ST7789 môžete načítať toto pole a zobraziť príslušný obrázok.

Pamätajte, že táto metóda je ideálna pre malé a stredne veľké projekty, pretože obmedzenia pamäte mikrokontroléra môžu pracovať proti vám, ak sa pokúsite načítať veľa veľkých obrázkov naraz.

Nakoniec, práca s TFT obrazovkami s ST7789VI vo vašich projektoch Arduino alebo ESP8266 otvára svet grafických možností. So správnou konfiguráciou a správnymi softvérovými nástrojmi môžete implementovať atraktívne a funkčné rozhrania bez príliš veľa prekážok.


Buďte prvý komentár

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.