Dziś wyświetlacze TFT z kontrolerem ILI9341 są jedną z najpopularniejszych opcji w projektach prototypowania Arduino ze względu na ich wszechstronność i możliwości graficzne. Jeżeli zastanawiałeś się jak wykorzystać te ekrany w swoich projektach to dobrze trafiłeś. Tutaj wyjaśnimy wszystko, co musisz wiedzieć, aby podłączyć, skonfigurować i używać ekranu TFT ILI9341, a także zobaczymy kilka bardzo przydatnych przykładów kodu.
Praca z tym wyświetlaczem może początkowo wydawać się skomplikowana ze względu na liczbę wymaganych pinów i połączeń, ale gdy zrozumiesz proces, stanie się znacznie prostsza. W tym artykule zobaczymy krok po kroku jak nawiązać połączenie, przetestować je i zaprogramować.
Materiały potrzebne do współpracy wyświetlacza ILI9341 z Arduino
- Arduino UNO lub Arduino Pro Mini 3.3 V: Jeśli używasz a Arduino UNO, będziesz potrzebować adapterów poziomu logicznego, aby uniknąć uszkodzenia ekranu, ponieważ działa on z napięciem 3.3 V. Jeśli używasz Arduino Pro Mini 3.3 V, możesz połączyć się bezpośrednio.
- Ekran TFT ILI9341: Ekran 2.4 lub 2.8 cala o rozdzielczości 240 x 320 pikseli.
- Konwerter poziomów logicznych (Jeśli użyjesz Arduino UNO): aby dostosować poziomy od 5 V do 3.3 V.
- Płytka prototypowa y przewody połączenia.
Krok 1: Podłącz wyświetlacz ILI9341 do Arduino
Wyświetlacz TFT ILI9341 wykorzystuje interfejs SPI do komunikacji z Arduino, dlatego ważne będzie wykonanie poprawnych połączeń pomiędzy pinami SPI Arduino a wyświetlaczem. Poniższa tabela wyjaśnia szczegółowo sposób wykonania podstawowych połączeń:
| pin ekranu | Pin Arduino |
|---|---|
| SDO (MISO) | Kołek 12 |
| SCK | Kołek 13 |
| SDI (MOSI) | Kołek 11 |
| D / C | Kołek 9 |
| CS | Kołek 10 |
| GND | Pin GND |
| VCC | Pin 3.3 V |
| DOPROWADZIŁO | Pin 3.3 V |
Pamiętaj, że jeśli używasz Arduino UNO, konieczne będzie użycie adaptery poziomów logicznych do konwersji 5 V pinów Arduino na 3.3 V. Jeśli używasz Arduino Pro Mini 3.3 V, ten środek ostrożności nie jest konieczny.
Krok 2: Zainstaluj niezbędne biblioteki
Aby współdziałać z wyświetlaczem ILI9341, musimy zainstalować pewne biblioteki w Arduino IDE. Musimy upewnić się, że mamy następujące biblioteki:
- Adafruit_ILI9341: Jest to główna biblioteka do obsługi wyświetlaczy ILI9341 za pomocą Arduino.
- Adafruit_GFX: Ta biblioteka ułatwia tworzenie podstawowych grafik, takich jak linie, okręgi, prostokąty itp.
Aby zainstalować te biblioteki, otwórz Arduino IDE i przejdź do Program > Dołącz bibliotekę > Zarządzaj bibliotekami i szukaj ILI9341 aby zainstalować odpowiednią bibliotekę. Poszukaj też w księgarni Adafruit GFX i upewnij się, że instalujesz właściwy.
Krok 3: Przetestuj ekran TFT na podstawowym przykładzie

Po zainstalowaniu bibliotek nadszedł czas na przetestowanie ekranu, aby upewnić się, że wszystko jest poprawnie podłączone i działa. Arduino IDE zawiera bardzo kompletny przykład, który będzie dla nas bardzo pomocny. Załadujmy test graficzny:
- Otwórz środowisko Arduino IDE.
- Idź do Plik > Przykłady > Adafruit_ILI9341 > graphtest.
- Skompiluj i prześlij przykład do Arduino.
Jeśli wszystko poszło dobrze, powinieneś zobaczyć na ekranie serię wykresów przedstawiających różne rodzaje linii, kształtów i kolorów.
Krok 4: Stwórz praktyczny projekt: Wyświetl wartości analogowe na ekranie ILI9341
Jednym z pierwszych projektów, jakie możemy wykonać za pomocą tego ekranu, jest wyświetlenie wartości wejścia analogowego, np. napięcia potencjometru. Wykorzystamy do tego piny wyświetlacza, które już podłączyliśmy, a także potencjometr podłączony do wejścia analogowego A0 Arduino.
Poniższy kod pokazuje jak możemy odczytać wartość analogową potencjometru i wyświetlić ją na ekranie:
#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);
}
Program ten w sposób ciągły odczytuje napięcie i wyświetla je na ekranie w formacie tekstowym. Jeśli obrócisz pokrętło potencjometru, zmiana powinna być widoczna na ekranie niemal natychmiast.
Dodanie przycisku na ekranie dotykowym ILI9341
Oprócz wyświetlania informacji wyświetlacz ILI9341 ma także funkcję dotykową, jeśli jest wyposażony w kontroler XPT2046. Stwórzmy prosty przykład pokazujący, jak wykryć dotknięcia na ekranie.
Najpierw musimy wykonać połączenia kontrolera dotykowego ekranu. Główne piny kontrolera dotykowego to:
- DOTYK_CS: Pin 10.
- DOTYK_IRQ: Pin 2.
Po wykonaniu tych połączeń skorzystamy z biblioteki XPT2046_Ekran dotykowy wykrywać dotyk. Poniżej zostawiam Wam kod pokazujący na ekranie przycisk, który po każdym naciśnięciu zmienia kolor.
#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");
}
}
}
Kod wykrywa czy przycisk został naciśnięty i zmienia kolor z czerwonego na zielony. Możesz także dostosować położenie i rozmiar przycisku do swoich potrzeb.
Ważne jest, aby upewnić się, że ekran jest prawidłowo skalibrowany tak, aby dotknięcia odpowiadały właściwie współrzędnym ekranu. Jeśli zauważysz, że reakcja na dotyk nie jest dokładna, może być konieczna kalibracja związana z rozdzielczością ekranu.