Jak používat displej ILI9341 s Arduinem – kompletní a podrobný návod

  • Displej ILI9341 TFT komunikuje přes rozhraní SPI a vyžaduje přesné připojení.
  • Pokud používáte 5V Arduino, je nezbytné používat adaptéry logické úrovně, aby nedošlo k poškození displeje.
  • Knihovny Adafruit_GFX a Adafruit_ILI9341 jsou nezbytné pro programování grafiky na obrazovce.
  • S displejem ILI9341 lze realizovat praktické projekty, jako je vizualizace dat nebo dotykové snímání.

TFT s ST7789VI MCU ovládání arduino-7

Dnes jsou TFT displeje s řadičem ILI9341 jednou z nejoblíbenějších možností pro projekty prototypování Arduino díky své všestrannosti a grafickým možnostem. Pokud jste hledali, jak tyto obrazovky využít ve svých projektech, jste na správném místě. Zde vysvětlíme vše, co potřebujete vědět pro připojení, konfiguraci a používání obrazovky ILI9341 TFT, a také uvidíme několik velmi užitečných příkladů kódu.

Práce s tímto displejem se může zprvu zdát komplikovaná kvůli počtu potřebných pinů a připojení, ale jakmile proces pochopíte, bude mnohem jednodušší. V tomto článku se podíváme krok za krokem na to, jak připojení vytvořit, otestovat a naprogramovat.

Materiály potřebné k použití displeje ILI9341 s Arduinem

  • Arduino UNO nebo 3.3V Arduino Pro Mini: Pokud používáte a Arduino UNO, budete potřebovat adaptéry logické úrovně, aby nedošlo k poškození obrazovky, protože pracuje s 3.3 V. Pokud používáte 3.3V Arduino Pro Mini, můžete se připojit přímo.
  • Displej TFT ILI9341: 2.4 nebo 2.8 palcový displej s rozlišením 240 x 320 pixelů.
  • Převodník logické úrovně (pokud používáte Arduino UNO): pro přizpůsobení úrovní od 5V do 3.3V.
  • Nepájivá deska y kabely připojení.

Krok 1: Připojte displej ILI9341 k Arduinu

Displej ILI9341 TFT používá pro komunikaci s Arduinem rozhraní SPI, takže bude důležité provést správné propojení mezi piny SPI na Arduinu a displejem. Následující tabulka podrobně vysvětluje, jak provést základní připojení:

špendlík obrazovky Arduino Pin
SDO (MISO) Kolík 12
SCK Kolík 13
SDI (MOSI) Kolík 11
DC Kolík 9
CS Kolík 10
GND Pin GND
VCC Pin 3.3V
LED Pin 3.3V

Pamatujte, že pokud používáte a Arduino UNO, bude nutné použít adaptéry logické úrovně převést 5V pinů Arduina na 3.3V. Pokud používáte 3.3V Arduino Pro Mini, toto opatření není nutné.

Krok 2: Nainstalujte potřebné knihovny

Pro interakci s displejem ILI9341 musíme do Arduino IDE nainstalovat nějaké knihovny. Musíme se ujistit, že máme následující knihovny:

  • Adafruit_ILI9341: Toto je hlavní knihovna pro řízení displejů ILI9341 pomocí Arduina.
  • Adafruit_GFX: Tato knihovna usnadňuje vytváření základní grafiky, jako jsou čáry, kruhy, obdélníky atd.

Chcete-li nainstalovat tyto knihovny, otevřete Arduino IDE a přejděte na Program > Zahrnout knihovnu > Spravovat knihovny a hledat ILI9341 k instalaci příslušné knihovny. Hledejte také knihkupectví Adafruit GFX a ujistěte se, že nainstalujete ten správný.

Krok 3: Otestujte obrazovku TFT na základním příkladu

Arduino IDE, datové typy, programování

Jakmile jsou knihovny nainstalovány, je čas otestovat obrazovku, abyste se ujistili, že je vše správně připojeno a funguje. Arduino IDE obsahuje velmi kompletní příklad, který nám velmi pomůže. Pojďme načíst grafický test:

  • Otevřete Arduino IDE.
  • Přejít na Soubor > Příklady > Adafruit_ILI9341 > graphictest.
  • Zkompilujte a nahrajte příklad do svého Arduina.

Pokud vše proběhlo v pořádku, měli byste na obrazovce vidět řadu grafů zobrazujících různé typy čar, tvarů a barev.

Krok 4: Vytvořte praktický projekt: Zobrazte analogové hodnoty na obrazovce ILI9341

Jedním z prvních projektů, které můžeme s touto obrazovkou udělat, je zobrazení hodnoty analogového vstupu, jako je napětí potenciometru. K tomu použijeme piny displeje, které jsme již připojili, a také potenciometr připojený k analogovému vstupu A0 Arduina.

Následující kód ukazuje, jak můžeme přečíst analogovou hodnotu potenciometru a zobrazit ji na obrazovce:

#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 nepřetržitě čte napětí a zobrazuje je na obrazovce v textovém formátu. Pokud otočíte knoflíkem potenciometru, měli byste vidět změnu na obrazovce téměř okamžitě.

Přidání tlačítka na dotykovou obrazovku ILI9341

Kromě zobrazování informací má displej ILI9341 také dotykovou funkci, pokud je vybaven ovladačem XPT2046. Vytvořme jednoduchý příklad, který ukáže, jak detekovat dotyky na obrazovce.

Nejprve musíme provést připojení dotykového ovladače obrazovky. Hlavní piny pro dotykový ovladač jsou:

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

Po provedení těchto spojení použijeme knihovnu XPT2046_Dotyková obrazovka k detekci dotyků. Níže vám zanechám kód, který zobrazuje tlačítko na obrazovce, které při každém stisku změní barvu.

#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á, zda bylo stisknuto tlačítko, a změní jeho barvu z červené na zelenou. Pozici a velikost tlačítka si také můžete přizpůsobit podle svých potřeb.

Je nezbytné zajistit, aby byla obrazovka správná zkalibrované tak, aby dotyky správně odpovídaly souřadnicím obrazovky. Pokud si všimnete, že odezva na dotek není přesná, může být nutná kalibrace související s rozlišením obrazovky.


Začněte konverzaci

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.