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
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.