Sot, ekranet TFT me kontrolluesin ILI9341 janë një nga opsionet më të njohura për projektet e prototipit Arduino për shkak të shkathtësisë dhe aftësive të tyre grafike. Nëse keni kërkuar se si të përfitoni nga këto ekrane në projektet tuaja, keni ardhur në vendin e duhur. Këtu shpjegojmë gjithçka që duhet të dini për t'u lidhur, konfiguruar dhe përdorur ekranin TFT ILI9341, si dhe do të shohim disa shembuj kodesh shumë të dobishëm.
Puna me këtë ekran mund të duket e ndërlikuar në fillim për shkak të numrit të kunjave dhe lidhjeve të kërkuara, por sapo të kuptoni procesin, ai bëhet shumë më i thjeshtë. Në këtë artikull do të shohim hap pas hapi se si të bëni lidhjen, ta testoni dhe programoni atë.
Materialet e nevojshme për të përdorur ekranin ILI9341 me Arduino
- Arduino UNO ose 3.3V Arduino Pro Mini: Nëse përdorni a Arduino UNO, do t'ju duhen adaptorë të nivelit logjik për të shmangur dëmtimin e ekranit, pasi funksionon me 3.3V. Nëse përdorni një Arduino Pro Mini 3.3V, mund të lidheni drejtpërdrejt.
- Ekran TFT ILI9341: Ekran 2.4 ose 2.8 inç me rezolucion 240x320 pixel.
- Konvertuesi i nivelit logjik (nëse përdorni Arduino UNO): për të përshtatur nivelet nga 5V në 3.3V.
- Pllaka buke y kabllot të lidhjes.
Hapi 1: Lidhni ekranin ILI9341 me Arduino
Ekrani ILI9341 TFT përdor ndërfaqen SPI për të komunikuar me Arduino, kështu që do të jetë e rëndësishme të bëni lidhjet e sakta midis kunjave SPI në Arduino dhe ekranit. Tabela e mëposhtme shpjegon në detaje se si të bëni lidhjet bazë:
| kunja e ekranit | Pin Arduino |
|---|---|
| SDO (MISO) | Kunji 12 |
| SCK | Kunji 13 |
| SDI (MOSI) | Kunji 11 |
| D / C | Kunji 9 |
| CS | Kunji 10 |
| GND | Pin GND |
| KQV-së | Pin 3.3V |
| LED | Pin 3.3V |
Mos harroni se nëse jeni duke përdorur një Arduino UNO, do të jetë e nevojshme të përdoret përshtatës të nivelit logjik për të kthyer 5V të kunjave Arduino në 3.3V. Nëse përdorni një Arduino Pro Mini 3.3V, kjo masë paraprake nuk është e nevojshme.
Hapi 2: Instaloni bibliotekat e nevojshme
Për të bashkëvepruar me ekranin ILI9341, duhet të instalojmë disa biblioteka në Arduino IDE. Duhet të sigurohemi që kemi bibliotekat e mëposhtme:
- Adafruit_ILI9341: Kjo është biblioteka kryesore për të drejtuar ekranet ILI9341 me Arduino.
- Adafruit_GFX: Kjo bibliotekë e bën të lehtë krijimin e grafikëve bazë si vijat, rrathët, drejtkëndëshat, etj.
Për të instaluar këto biblioteka, hapni Arduino IDE dhe shkoni te Programi > Përfshi bibliotekën > Menaxho bibliotekat dhe kërko ILI9341 për të instaluar bibliotekën përkatëse. Gjithashtu, kërkoni librarinë Adafruit GFX dhe sigurohuni që të instaloni atë të duhurin.
Hapi 3: Testoni ekranin TFT me një shembull bazë

Pasi të jenë instaluar bibliotekat, është koha për të testuar ekranin për t'u siguruar që gjithçka është e lidhur dhe funksionon saktë. Arduino IDE përfshin një shembull shumë të plotë që do të na ndihmojë shumë. Le të ngarkojmë grafiktest:
- Hapni Arduino IDE.
- Shko tek Skedar > Shembuj > Adafruit_ILI9341 > grafiktest.
- Përpiloni dhe ngarkoni shembullin në Arduino-n tuaj.
Nëse gjithçka shkoi mirë, duhet të shihni një seri grafikësh që tregojnë lloje të ndryshme linjash, formash dhe ngjyrash në ekran.
Hapi 4: Krijoni një projekt praktik: Shfaqni vlerat analoge në ekranin ILI9341
Një nga projektet e para që mund të bëjmë me këtë ekran është shfaqja e vlerës së një hyrje analoge, siç është tensioni i një potenciometri. Për këtë, ne do të përdorim kunjat e ekranit që kemi lidhur tashmë, si dhe një potenciometër të lidhur me hyrjen analoge A0 të Arduino.
Kodi i mëposhtëm tregon se si mund të lexojmë vlerën analoge të potenciometrit dhe ta shfaqim atë në ekran:
#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);
}
Ky program lexon vazhdimisht tensionin dhe e shfaq atë në ekran në format teksti. Nëse rrotulloni çelësin e potenciometrit, do të shihni ndryshimin e reflektuar në ekran pothuajse menjëherë.
Shtimi i një butoni në ekranin me prekje ILI9341
Përveç shfaqjes së informacionit, ekrani ILI9341 ka gjithashtu aftësi prekjeje nëse është i pajisur me kontrolluesin XPT2046. Le të krijojmë një shembull të thjeshtë që tregon se si të zbuloni prekjet në ekran.
Së pari, duhet të bëjmë lidhjet e kontrolluesit me prekje të ekranit. Kunjat kryesore për kontrolluesin me prekje janë:
- TOUCH_CS: Pin 10.
- TOUCH_IRQ: Pin 2.
Pasi të bëjmë këto lidhje, ne do të përdorim bibliotekën XPT2046_Ekrani me prekje për të zbuluar prekjet. Më poshtë po ju lë një kod që tregon një buton në ekran, i cili ndryshon ngjyrën sa herë që shtypet.
#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");
}
}
}
Kodi zbulon nëse butoni është shtypur dhe ndryshon ngjyrën e tij nga e kuqe në jeshile. Ju gjithashtu mund të personalizoni pozicionin dhe madhësinë e butonit sipas nevojave tuaja.
Është thelbësore të siguroheni që ekrani të jetë i saktë të kalibruar në mënyrë që prekjet të korrespondojnë siç duhet me koordinatat e ekranit. Nëse vëreni se përgjigja e prekjes nuk është e saktë, mund të jetë i nevojshëm një kalibrim në lidhje me rezolucionin e ekranit.