
Les pantalles TFT controlades pel xip ST7789VI són una excel·lent opció per a projectes d'Arduino i altres microcontroladors. Aquestes pantalles, petites però d'alta resolució, permeten visualitzar gràfics, text i imatges de manera clara i precisa. Tot i això, la seva integració pot ser una mica desafiant per als que no estan familiaritzats amb protocols com SPI o els requeriments d'alimentació i control. En aquesta guia, aprofundirem en tots els aspectes de la connexió, l'ús de biblioteques i la configuració d'aquestes pantalles amb el teu Arduino.
A més, aprendràs a connectar-les amb diferents plaques com el NodeMCU ESP8266 i el clàssic Arduino Nano. per a qualsevol altre tipus daplicació, sense dependre de targetes SD ni de circuits complexos.
Què és una pantalla TFT amb controlador ST7789VI?
les pantalles TFT (Transistor de Pel·lícula Prima) es caracteritzen per oferir una qualitat d'imatge molt superior a altres tipus de pantalles com els LCD normals o les OLED més petites. El controlador ST7789VI és el cervell d'aquestes pantalles, encarregat de processar els senyals que li envia un microcontrolador com Arduino o ESP8266, i convertir aquests senyals en imatges, colors i gràfics complexos.
Un dels grans avantatges d'aquestes pantalles és que utilitzen el bus de comunicació SPI, cosa que simplifica la connexió amb la majoria dels microcontroladors, utilitzant només quatre pins de control (SDA, SCL, RES i DC). cablejat i són perfectes per projectes compactes.
Connexió de la pantalla TFT amb el xip ST7789VI
Per poder treballar amb aquestes pantalles, és fonamental saber com connectar-les correctament al teu Arduino o ESP8266. Depenent del microcontrolador que utilitzeu, l'alimentació i els pins de connexió poden canviar lleugerament. A continuació detallem les connexions més importants.

Connexions bàsiques:
- VCC: Es connecta al senyal d'alimentació, que generalment és 3.3V (no 5V per evitar mal a la pantalla).
- GND: Va connectat a terra.
- SCL (de vegades marcat com a CLK): És el pin del rellotge serial i va al pin D13 en una placa Arduino Uno o Nano.
- SDA (també etiquetat com a MOSI): És el pin que envia les dades i es connecta al D11.
- RES: Es connecta al pin encarregat de fer el reinici de la pantalla; en aquest cas, al D8 de l'Arduino.
- DC: El pin d'ordre/dades, que es connecta al pin D9.
Pel que fa a les plaques ESP8266, notaràs que aquestes funcionen a 3.3V, per la qual cosa no necessitaràs preocupar-te per adequar els nivells de voltatge, com sí que passa amb Arduino, on és necessari utilitzar divisors de voltatge amb resistències per protegir el controlador de la pantalla.
Ús de biblioteques a Arduino
Un cop tinguis totes les connexions fetes correctament, necessitaràs instal·lar algunes biblioteques a l'Arduino IDE. Per treballar amb aquestes pantalles, l'opció més utilitzada és la biblioteca Adafruit ST7789, que és altament compatible amb el maquinari d'aquestes pantalles i podem fer-la servir juntament amb la biblioteca Adafruit GFX per crear gràfics avançats.
Per instal·lar les biblioteques segueix aquests passos:
- Vés a Sketch -> Include Library -> Manage Libraries.
- Escriu ST7789 a la barra de cerca i seleccioneu l'opció de Adafruit.
- Fes el mateix per a la biblioteca Adafruit GFX.
Amb aquestes dues biblioteques ja instal·lades, estaràs llest per escriure el teu primer codi i visualitzar imatges, text o qualsevol gràfic que vulguis.
Codi bàsic per a «Hello, World!» en pantalla TFT
Un bon punt de partida per posar a prova la pantalla és mostrar un simple Hello, World! a la pantalla. A continuació, us mostrem un codi bàsic que podeu utilitzar per a aquest fi. Recorda que aquest codi està dissenyat per Arduino Uno o Nano, però si estàs usant altres plaques, és probable que hagis d'adaptar els pins.
#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
}

Aquest petit codi inicialitza la pantalla, la posa en posició horitzontal i mostra el text Hello World al centre de la mateixa. Pots experimentar amb diferents mides de text o colors utilitzant els mètodes setTextColor, setTextSize, entre d'altres.
Capacitats gràfiques de la pantalla ST7789VI
Les capacitats gràfiques d'aquestes pantalles són força completes. Amb la biblioteca Adafruit GFX, podeu dibuixar línies, rectangles, cercles i molt més amb uns quants comandaments.
- drawLine(x0, y0, x1, y1, color): Dibuixa una línia des del punt (x0, y0) fins a (x1, y1).
- fillRect(x, y, w, h, color): Dibuixa un rectangle ple a la pantalla.
- fillCircle(x, y, r, color): Dibuixa un cercle sòlid amb radi r des del punt (x, y).
Aquests mètodes bàsics et permetran donar vida a la pantalla ràpidament, però la biblioteca també permet importar imatges en format Bitmap, la qual cosa és molt útil si vols mostrar gràfics complexos.
Per treballar amb imatges, necessitaràs convertir-les prèviament en un format entenedor per l'Arduino, com expliquem més endavant.
Importar imatges a la pantalla sense fer servir una targeta SD
Generalment, carregar imatges en una pantalla TFT requereix una targeta SD adjunta, que emmagatzemi la imatge i permeti carregar-la des d'aquesta. No obstant això, podem evitar aquest pas convertint les imatges a codi bitmap i emmagatzemant-les directament a la memòria del microcontrolador.
El procés és més senzill del que sembla. Només cal utilitzar algun programari per convertir la teva imatge i després integrar-la en un fitxer de capçalera. Aquí us mostrem els passos a seguir:
- Tria una imatge, preferiblement de mida 240×240 píxels (la mida del display).
- Utilitza un programa com LCD Image Converter per convertir la imatge a un array de valors.
- Guarda l'array generat i copia les dades dins del fitxer header (.h) del teu projecte Arduino.
Tot seguit, amb l'ús de la funció pushImage() de la biblioteca Adafruit ST7789, podeu carregar aquest array i visualitzar la imatge en qüestió.
Recorda que aquest mètode és ideal per a projectes petits i mitjans, ja que les limitacions de memòria del microcontrolador poden jugar en contra si intentes carregar moltes imatges grans alhora.
Finalment, treballar amb pantalles TFT amb ST7789VI als teus projectes d'Arduino o ESP8266 t'obre un món de possibilitats gràfiques. Amb una correcta configuració i les eines de programari adequades, podràs implementar interfícies vistoses i funcionals sense gaires contratemps.