Avui dia, les pantalles TFT amb el controlador ILI9341 són una de les opcions més populars per a projectes de prototipat amb Arduino per la seva versatilitat i les seves capacitats grà fiques. Si has estat buscant com aprofitar aquestes pantalles als teus projectes, vas arribar al lloc indicat. Aquà t'expliquem tot el que necessites saber per connectar, configurar i fer servir la pantalla TFT ILI9341, ia més veurem alguns exemples de codi molt útils.
Treballar amb aquesta pantalla pot semblar complicat al principi a causa de la quantitat de pins i connexions necessà ries, però un cop entens el procés, es torna molt més senzill. En aquest article veurem pas a pas com realitzar la connexió, provar-la i programar-la.
Materials necessaris per utilitzar la pantalla ILI9341 amb Arduino
- Arduino UNO o Arduino Pro Mini de 3.3V: Si utilitzes un Arduino UNO, necessitaràs adaptadors de nivell lògic per no fer malbé la pantalla, ja que aquesta treballa amb 3.3V. Si utilitzes un Arduino Pro Mini de 3.3V, pots connectar directament.
- Pantalla TFT ILI9341: Pantalla de 2.4 o 2.8 polzades amb resolució de 240×320 pÃxels.
- Conversor de nivell lògic (Si fas servir Arduino UNO): per adaptar els nivells de 5V a 3.3V.
- protoboard y cables de connexió.
Pas 1: Connectar la pantalla ILI9341 a l'Arduino
La pantalla TFT ILI9341 utilitza la interfÃcie SPI per comunicar-se amb Arduino, aixà que serà important fer les connexions correctes entre els pins SPI de l'Arduino i la pantalla. La taula següent explica detalladament com fer les connexions bà siques:
| Pin de la pantalla | Pin de l'Arduà |
|---|---|
| SDO (MIS) | Pin 12 |
| SCK | Pin 13 |
| SDI (MOSI) | Pin 11 |
| D / C | Pin 9 |
| CS | Pin 10 |
| GND | Pin GND |
| VCC | Pin 3.3V |
| LED | Pin 3.3V |
Recorda que si utilitzes un Arduino UNO, caldrà fer servir els adaptadors de nivell lògic per convertir els 5V dels pins de l'Arduino a 3.3V. Si utilitzeu un Arduino Pro Mini de 3.3V, aquesta precaució no és necessà ria.
Pas 2: Instal·lar les llibreries necessà ries
Per interactuar amb la pantalla ILI9341, necessitem instal·lar algunes llibreries a l'IDE d'Arduino. Hem d'assegurar-nos de tenir les llibreries següents:
- Adafruit_ILI9341: Aquesta és la llibreria principal per manejar pantalles ILI9341 amb Arduino.
- Adafruit_GFX: Aquesta llibreria facilita la creació de grà fics bà sics com a lÃnies, cercles, rectangles, etc.
Per instal·lar aquestes llibreries, obre l'IDE d'Arduino i vés a Programa > Incloure llibreria > Gestionar biblioteques i busca ILI9341 per instal·lar la llibreria corresponent. Aixà mateix, cerca la llibreria Adafruit GFX i assegura't d'instal·lar l'adequada.
Pas 3: Provar la pantalla TFT amb un exemple bà sic

Un cop instal·lades les llibreries, és moment de provar la pantalla per assegurar-nos que tot està correctament connectat i funcionant. L´IDE d´Arduino inclou un exemple molt complet que ens serà de gran ajuda. Anem a carregar el graphictest:
- Obre l'IDE d'Arduino.
- Vés a Fitxer > Exemples > Adafruit_ILI9341 > graphictest.
- Compila i apuja l'exemple al teu Arduino.
Si tot ha anat bé, hauries de veure una sèrie de grà fics mostrant a la pantalla diferents tipus de lÃnies, formes i colors.
Pas 4: Crear un projecte prà ctic: Mostrar valors analògics a la pantalla ILI9341
Un dels primers projectes que podem fer amb aquesta pantalla és visualitzar el valor duna entrada analògica, com el voltatge dun potenciòmetre. Per això utilitzarem els pins de la pantalla que ja hem connectat, a més d'un potenciòmetre connectat a l'entrada analògica A0 de l'Arduino.
El codi següent mostra com podem llegir el valor analògic del potenciòmetre i mostrar-lo a la pantalla:
#include
#include
#include
#define TFT_DC 9
#define TFT_CS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
void setup() {
tft.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
}
void loop() {
int val = analogRead(A0);
float voltage = val * (5.0 / 1023.0);
tft.setCursor(60, 30);
tft.print("Voltaje: ");
tft.print(voltage);
delay(500);
}
Aquest programa llegeix contÃnuament el voltatge i el mostra a la pantalla en format text. Si gires la perilla del potenciòmetre hauries de veure el canvi reflectit a la pantalla gairebé immediatament.
Afegint un botó a la pantalla tà ctil ILI9341
A més de mostrar informació, la pantalla ILI9341 també té capacitat tà ctil si compteu amb el controlador XPT2046. Crearem un exemple senzill que mostri com detectar tocs a la pantalla.
Primer, cal fer les connexions del controlador tà ctil de la pantalla. Els pins principals per al controlador tà ctil són:
- TOUCH_CS: Pin 10.
- TOUCH_IRQ: Pin 2.
Després de fer aquestes connexions, utilitzarem la llibreria XPT2046_Touchscreen per detectar els tocs. A continuació et deixo un codi que mostra un botó a la pantalla, que canvia de color cada vegada que és pressionat.
#include
#include
#include
#include
#define TFT_DC 9
#define TFT_CS 10
#define TOUCH_CS 10
#define TOUCH_IRQ 2
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
XPT2046_Touchscreen ts(TOUCH_CS, TOUCH_IRQ);
void setup() {
tft.begin();
ts.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
tft.fillRect(50, 160, 100, 50, ILI9341_RED);
tft.setCursor(75, 175);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("BOTON");
}
void loop() {
if (ts.touched()) {
TS_Point p = ts.getPoint();
if (p.x >= 50 && p.x <= 150 && p.y >= 160 && p.y <= 210) {
tft.fillRect(50, 160, 100, 50, ILI9341_GREEN);
tft.setCursor(75, 175);
tft.println("PULSADO");
}
}
}
El codi detecta si el botó ha estat premut i canvia el color de vermell a verd. També podeu personalitzar la posició i la mida del botó segons les vostres necessitats.
És fonamental assegurar-se que la pantalla està correctament calibrat perquè els tocs corresponguin adequadament a les coordenades de la pantalla. Si notes que la resposta tà ctil no és necessà ria, potser cal fer un calibratge relacionat amb la resolució de la pantalla.