TFT ekrāni, ko kontrolē ST7789VI mikroshēma Tie ir lieliska izvēle Arduino un citiem mikrokontrolleru projektiem. Šie mazie, bet augstas izšķirtspējas ekrāni ļauj skaidri un precīzi attēlot grafiku, tekstu un attēlus. Tomēr tās integrācija var būt zināmā mērā sarežģīta tiem, kuri nepārzina tādus protokolus kā SPI vai jaudas un kontroles prasības. Šajā rokasgrāmatā mēs iedziļināsimies visos savienojuma, bibliotēku izmantošanas un šo ekrānu konfigurēšanas aspektos ar jūsu Arduino.
Turklāt jūs uzzināsit, kā tos savienot ar dažādām platēm, piemēram, NodeMCU ESP8266 un klasisko Arduino Nano. Tādā veidā jūs varēsiet pilnībā izmantot šāda veida displeju grafiskās un tehniskās iespējas gan lietiskā interneta (IoT) projektiem, gan jebkura cita veida lietojumprogrammām, neatkarīgi no SD kartēm vai sarežģītām shēmām.
Kas ir TFT displejs ar ST7789VI draiveri?
Ekrāni TFT (Plānas plēves tranzistors) piedāvā attēla kvalitāti, kas ir daudz labāka nekā cita veida ekrāniem, piemēram, parastajiem LCD vai mazākiem OLED. Kontrolieris ST7789VI Tās ir šo ekrānu smadzenes, kas ir atbildīgas par signālu apstrādi, ko tai nosūta mikrokontrolleris, piemēram, Arduino vai ESP8266, un pārvērš šos signālus attēlos, krāsās un sarežģītā grafikā.
Viena no šo displeju lielajām priekšrocībām ir tā, ka tie izmanto SPI sakaru kopni, kas vienkāršo savienojumu ar lielāko daļu mikrokontrolleru, izmantojot tikai četras vadības tapas (SDA, SCL, RES un DC). Tas ļauj ievērojami samazināt elektroinstalāciju un ir lieliski piemērots kompakti projekti.
TFT ekrāna savienošana ar mikroshēmu ST7789VI
Lai strādātu ar šiem ekrāniem, ir svarīgi zināt, kā pareizi savienot tos ar savu Arduino vai ESP8266. Atkarībā no izmantotā mikrokontrollera strāvas un savienojuma tapas var nedaudz mainīties. Zemāk mēs detalizēti aplūkosim svarīgākos savienojumus.
Pamata savienojumi:
- VCC: pievienojas strāvas signālam, kas parasti ir 3.3 V (nevis 5 V, lai izvairītos no ekrāna bojājumiem).
- GND: Tas ir savienots ar zemi.
- SCL (dažreiz apzīmēts ar CLK): Šī ir sērijas pulksteņa tapa un iet uz D13 uz šķīvja Arduino Uno vai Nano.
- SDA (arī apzīmēts ar MOSI): tā ir tapa, kas nosūta datus un izveido savienojumu ar D11.
- RES: savienojas ar tapu, kas ir atbildīga par ekrāna atiestatīšanu; šajā gadījumā plkst D8 no Arduino.
- DC: komandas/datu tapa, kas savieno ar D9.
Attiecībā uz plāksnēm ESP8266, pamanīsiet, ka šie darbojas ar 3.3 V spriegumu, tāpēc jums nebūs jāuztraucas par sprieguma līmeņu regulēšanu, kā tas ir Arduino gadījumā, kur displeja kontrollera aizsardzībai nepieciešams izmantot sprieguma dalītājus ar rezistoriem.
Arduino bibliotēku izmantošana
Kad visi savienojumi ir izveidoti pareizi, jums būs jāinstalē dažas bibliotēkas Arduino IDE. Lai strādātu ar šiem ekrāniem, visbiežāk izmantotā opcija ir bibliotēka Adafruit ST7789, kas ir ļoti savietojams ar šo displeju aparatūru, un mēs to varam izmantot kopā ar bibliotēku Adafruit GFX lai izveidotu uzlabotu grafiku.
Lai instalētu bibliotēkas, veiciet šīs darbības:
- Iet uz Skice -> Iekļaut bibliotēku -> Pārvaldīt bibliotēkas.
- Rakstīt ST7789 meklēšanas joslā un atlasiet opciju Adafruit.
- Dariet to pašu ar bibliotēku Adafruit GFX.
Ja šīs divas bibliotēkas jau ir instalētas, jūs būsiet gatavs rakstīt savu pirmo kodu un parādīt attēlus, tekstu vai jebkuru vēlamo grafiku.
Pamatkods "Sveika, pasaule!" TFT ekrānā
Labs sākuma punkts ekrāna pārbaudei ir parādīt vienkāršu tekstu "Sveika, pasaule!" uz ekrāna. Zemāk mēs parādīsim pamata kodu, ko varat izmantot šim nolūkam. Atcerieties, ka šis kods ir paredzēts Arduino Uno vai Nano, bet, ja izmantojat citus dēļus, iespējams, būs jāpielāgo tapas.
#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
}
Šis mazais kods inicializē ekrānu, pagriež to horizontāli un tā centrā parāda tekstu "Hello World". Izmantojot metodes, varat eksperimentēt ar dažādiem teksta izmēriem vai krāsām setTextColor, setTextSize, Starp citiem.
ST7789VI displeja grafiskās iespējas
Šo ekrānu grafiskās iespējas ir diezgan pilnīgas. Izmantojot Adafruit GFX bibliotēku, ar dažām komandām varat zīmēt līnijas, taisnstūrus, apļus un daudz ko citu. Zemāk mēs uzskaitām dažus no visbiežāk izmantotajiem:
- drawLine(x0, y0, x1, y1, krāsa): novelciet līniju no punkta (x0, y0) līdz (x1, y1).
- fillRect(x, y, w, h, krāsa): uz ekrāna zīmē aizpildītu taisnstūri.
- fillCircle(x, y, r, krāsa): no punkta (x, y) uzzīmējiet cietu apli ar rādiusu r.
Šīs pamatmetodes ļaus ātri atdzīvināt ekrānu, taču bibliotēka ļauj arī importēt attēlus Bitkarte, kas ir ļoti noderīgi, ja vēlaties parādīt sarežģītus grafikus.
Lai strādātu ar attēliem, jums tie iepriekš būs jāpārvērš formātā, ko var saprast Arduino, kā mēs paskaidrosim vēlāk.
Importējiet attēlus ekrānā, neizmantojot SD karti
Parasti attēlu ielādei TFT ekrānā ir nepieciešama pievienota SD karte, kas saglabā attēlu un ļauj no tās ielādēt. Tomēr mēs varam izvairīties no šī soļa, pārveidojot attēlus bitkartes kodā un saglabājot tos tieši mikrokontrollera atmiņā.
Process ir vienkāršāks, nekā šķiet. Jums vienkārši jāizmanto programmatūra, lai pārveidotu attēlu un pēc tam iegultu to galvenes failā. Šeit mēs parādām darbības, kas jāveic:
- Izvēlieties attēlu, vēlams 240x240 pikseļus (displeja izmērs).
- Izmantojiet tādu programmu kā LCD attēla pārveidotājs lai attēlu pārvērstu vērtību masīvā.
- Saglabājiet ģenerēto masīvu un kopējiet datus sava Arduino projekta galvenes (.h) failā.
Pēc tam ar funkcijas izmantošanu pushImage() no Adafruit ST7789 bibliotēkas varat ielādēt šo masīvu un parādīt attiecīgo attēlu.
Atcerieties, ka šī metode ir ideāli piemērota maziem un vidējiem projektiem, jo mikrokontrollera atmiņas ierobežojumi var darboties pret jums, ja mēģināt ielādēt daudzus lielus attēlus vienlaikus.
Visbeidzot, darbs ar TFT ekrāniem ar ST7789VI savos Arduino vai ESP8266 projektos paver grafisko iespēju pasauli. Izmantojot pareizu konfigurāciju un pareizos programmatūras rīkus, jūs varat ieviest pievilcīgas un funkcionālas saskarnes bez pārāk daudzām neveiksmēm.