Ako používať displej ILI9341 s Arduino – Kompletný a podrobný návod

  • Displej ILI9341 TFT komunikuje cez rozhranie SPI a vyžaduje presné pripojenia.
  • Ak používate 5V Arduino, je nevyhnutné používať adaptéry na logickej úrovni, aby ste predišli poškodeniu displeja.
  • Knižnice Adafruit_GFX a Adafruit_ILI9341 sú nevyhnutné na programovanie grafiky na obrazovke.
  • S displejom ILI9341 je možné realizovať praktické projekty, ako je vizualizácia dát alebo dotykové snímanie.

TFT s ST7789VI MCU ovládaním arduino-7

Dnes sú TFT displeje s radičom ILI9341 jednou z najpopulárnejších možností pre projekty prototypovania Arduino vďaka ich všestrannosti a grafickým možnostiam. Ak ste hľadali, ako využiť výhody týchto obrazoviek vo svojich projektoch, ste na správnom mieste. Tu vysvetlíme všetko, čo potrebujete vedieť na pripojenie, konfiguráciu a používanie obrazovky ILI9341 TFT, a tiež uvidíme niekoľko veľmi užitočných príkladov kódu.

Práca s týmto displejom sa môže zdať na prvý pohľad komplikovaná kvôli počtu potrebných pinov a pripojení, ale akonáhle pochopíte proces, bude oveľa jednoduchšia. V tomto článku sa krok za krokom pozrieme na to, ako vytvoriť pripojenie, otestovať ho a naprogramovať.

Materiály potrebné na použitie displeja ILI9341 s Arduinom

  • Arduino UNO alebo 3.3 V Arduino Pro Mini: Ak používate a Arduino UNO, budete potrebovať adaptéry na logickej úrovni, aby ste predišli poškodeniu obrazovky, pretože funguje s 3.3 V. Ak používate 3.3 V Arduino Pro Mini, môžete sa pripojiť priamo.
  • TFT obrazovka ILI9341: 2.4 alebo 2.8 palcová obrazovka s rozlíšením 240 x 320 pixelov.
  • Prevodník logickej úrovne (ak používate Arduino UNO): na prispôsobenie úrovní od 5V do 3.3V.
  • Nepál y káble spojenia.

Krok 1: Pripojte displej ILI9341 k Arduinu

Displej ILI9341 TFT využíva na komunikáciu s Arduinom rozhranie SPI, takže bude dôležité správne prepojiť piny SPI na Arduine a displejom. Nasledujúca tabuľka podrobne vysvetľuje, ako vytvoriť základné pripojenia:

pin obrazovky Arduino Pin
SDO (MISO) Kolík 12
SCK Kolík 13
SDI (MOSI) Kolík 11
D / C Kolík 9
CS Kolík 10
GND Pin GND
VCC Pin 3.3V
LED Pin 3.3V

Pamätajte, že ak používate a Arduino UNO, bude potrebné použiť adaptéry na logickej úrovni na konverziu 5V pinov Arduina na 3.3V. Ak používate 3.3 V Arduino Pro Mini, toto opatrenie nie je potrebné.

Krok 2: Nainštalujte potrebné knižnice

Aby sme mohli interagovať s displejom ILI9341, musíme do Arduino IDE nainštalovať nejaké knižnice. Musíme sa uistiť, že máme nasledujúce knižnice:

  • Adafruit_ILI9341: Toto je hlavná knižnica na riadenie displejov ILI9341 pomocou Arduina.
  • Adafruit_GFX: Táto knižnica uľahčuje vytváranie základnej grafiky, ako sú čiary, kruhy, obdĺžniky atď.

Ak chcete nainštalovať tieto knižnice, otvorte Arduino IDE a prejdite na Program > Zahrnúť knižnicu > Spravovať knižnice a hľadať ILI9341 na inštaláciu príslušnej knižnice. Hľadajte aj kníhkupectvo Adafruit GFX a uistite sa, že ste nainštalovali ten správny.

Krok 3: Otestujte TFT obrazovku na základnom príklade

Arduino IDE, dátové typy, programovanie

Po nainštalovaní knižníc je čas otestovať obrazovku, aby ste sa uistili, že je všetko správne pripojené a funguje. Arduino IDE obsahuje veľmi kompletný príklad, ktorý nám veľmi pomôže. Načítajme grafický test:

  • Otvorte Arduino IDE.
  • Choďte na Súbor > Príklady > Adafruit_ILI9341 > graphictest.
  • Zostavte a nahrajte príklad do svojho Arduina.

Ak všetko prebehlo dobre, mali by ste na obrazovke vidieť sériu grafov zobrazujúcich rôzne typy čiar, tvarov a farieb.

Krok 4: Vytvorte praktický projekt: Zobrazte analógové hodnoty na obrazovke ILI9341

Jedným z prvých projektov, ktoré môžeme s touto obrazovkou urobiť, je zobrazenie hodnoty analógového vstupu, ako je napätie potenciometra. Na to použijeme piny displeja, ktoré sme už pripojili, ako aj potenciometer pripojený k analógovému vstupu A0 Arduina.

Nasledujúci kód ukazuje, ako môžeme prečítať analógovú hodnotu potenciometra a zobraziť ju na obrazovke:

#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);
}

Tento program nepretržite číta napätie a zobrazuje ho na obrazovke v textovom formáte. Ak otočíte gombíkom potenciometra, takmer okamžite by ste mali vidieť zmenu na obrazovke.

Pridanie tlačidla na dotykovú obrazovku ILI9341

Displej ILI9341 má okrem zobrazovania informácií aj dotykovú schopnosť, ak je vybavený ovládačom XPT2046. Vytvorme si jednoduchý príklad, ktorý ukáže, ako rozpoznať dotyky na obrazovke.

Najprv musíme vytvoriť pripojenia dotykového ovládača obrazovky. Hlavné piny pre dotykový ovládač sú:

  • TOUCH_CS: Pin 10.
  • TOUCH_IRQ: Pin 2.

Po vykonaní týchto spojení použijeme knižnicu XPT2046_Dotyková obrazovka na zistenie dotykov. Nižšie vám zanechám kód, ktorý zobrazuje tlačidlo na obrazovke, ktoré mení farbu pri každom stlačení.

#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");
    }
  }
}

Kód rozpozná, či bolo tlačidlo stlačené a zmení jeho farbu z červenej na zelenú. Môžete si tiež prispôsobiť polohu a veľkosť tlačidla podľa svojich potrieb.

Je dôležité zabezpečiť, aby bola obrazovka správna kalibrovaný aby dotyky správne zodpovedali súradniciam obrazovky. Ak zistíte, že odozva na dotyk nie je presná, môže byť potrebná kalibrácia súvisiaca s rozlíšením obrazovky.