Danes so zasloni TFT s krmilnikom ILI9341 ena najbolj priljubljenih možnosti za projekte izdelave prototipov Arduino zaradi svoje vsestranskosti in grafičnih zmogljivosti. Če ste iskali, kako izkoristiti te zaslone v svojih projektih, ste prišli na pravo mesto. Tukaj razložimo vse, kar morate vedeti za povezavo, konfiguracijo in uporabo zaslona TFT ILI9341, videli pa bomo tudi nekaj zelo uporabnih primerov kode.
Delo s tem zaslonom se morda sprva zdi zapleteno zaradi števila potrebnih nožic in povezav, a ko razumete postopek, postane veliko enostavnejše. V tem članku si bomo korak za korakom ogledali, kako vzpostaviti povezavo, jo preizkusiti in programirati.
Materiali, potrebni za uporabo zaslona ILI9341 z Arduinom
- Arduino UNO ali 3.3 V Arduino Pro Mini: Če uporabljate a Arduino UNO, boste potrebovali adapterje logičnega nivoja, da ne poškodujete zaslona, saj deluje s 3.3 V. Če uporabljate 3.3 V Arduino Pro Mini, se lahko povežete neposredno.
- TFT zaslon ILI9341: 2.4 ali 2.8-palčni zaslon z ločljivostjo 240x320 slikovnih pik.
- Pretvornik logičnih nivojev (če uporabljate Arduino UNO): za prilagajanje ravni od 5 V do 3.3 V.
- Breadboard y kabli povezave.
1. korak: povežite zaslon ILI9341 z Arduino
Zaslon ILI9341 TFT uporablja vmesnik SPI za komunikacijo z Arduinom, zato je pomembno, da naredite pravilne povezave med nožicami SPI na Arduinu in zaslonom. V naslednji tabeli je podrobno razloženo, kako narediti osnovne povezave:
zatič zaslona | Arduino Pin |
---|---|
SDO (MISO) | Zatič 12 |
SCK | Zatič 13 |
SDI (MOSI) | Zatič 11 |
D / C | Zatič 9 |
CS | Zatič 10 |
GND | Pin GND |
VCC | Pin 3.3 V |
LED | Pin 3.3 V |
Ne pozabite, da če uporabljate a Arduino UNO, bo treba uporabiti adapterji logične ravni za pretvorbo 5V zatičev Arduino v 3.3V. Če uporabljate 3.3 V Arduino Pro Mini, ta previdnost ni potrebna.
2. korak: Namestite potrebne knjižnice
Za interakcijo z zaslonom ILI9341 moramo namestiti nekaj knjižnic v Arduino IDE. Zagotoviti moramo, da imamo naslednje knjižnice:
- Adafruit_ILI9341: To je glavna knjižnica za pogon zaslonov ILI9341 z Arduinom.
- Adafruit_GFX: Ta knjižnica olajša ustvarjanje osnovnih grafik, kot so črte, krogi, pravokotniki itd.
Če želite namestiti te knjižnice, odprite Arduino IDE in pojdite na Program > Vključi knjižnico > Upravljanje knjižnic in iskanje ILI9341 za namestitev ustrezne knjižnice. Poiščite tudi knjigarno Adafruit GFX in poskrbite, da boste namestili pravega.
3. korak: Preizkusite zaslon TFT z osnovnim primerom
Ko so knjižnice nameščene, je čas, da preizkusite zaslon, da se prepričate, ali je vse pravilno povezano in deluje. Arduino IDE vključuje zelo popoln primer, ki nam bo v veliko pomoč. Naložimo grafični test:
- Odprite Arduino IDE.
- Pojdi na Datoteka > Primeri > Adafruit_ILI9341 > grafični test.
- Prevedite in naložite primer v Arduino.
Če je šlo vse v redu, bi morali na zaslonu videti niz grafov, ki prikazujejo različne vrste črt, oblik in barv.
4. korak: Ustvarite praktičen projekt: Prikažite analogne vrednosti na zaslonu ILI9341
Eden prvih projektov, ki jih lahko naredimo s tem zaslonom, je prikaz vrednosti analognega vhoda, kot je napetost potenciometra. Za to bomo uporabili zaslonske zatiče, ki smo jih že povezali, ter potenciometer, priključen na analogni vhod A0 Arduina.
Naslednja koda prikazuje, kako lahko odčitamo analogno vrednost potenciometra in jo prikažemo na zaslonu:
#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);
}
Ta program nenehno odčitava napetost in jo prikazuje na zaslonu v besedilni obliki. Če zavrtite gumb potenciometra, bi morali skoraj takoj videti spremembo, ki se odraža na zaslonu.
Dodajanje gumba na zaslon na dotik ILI9341
Poleg prikaza informacij ima zaslon ILI9341 tudi možnost dotika, če je opremljen s krmilnikom XPT2046. Ustvarimo preprost primer, ki prikazuje, kako zaznati dotike na zaslonu.
Najprej moramo narediti povezave krmilnika zaslona na dotik. Glavni zatiči za krmilnik na dotik so:
- TOUCH_CS: Pin 10.
- TOUCH_IRQ: Pin 2.
Po vzpostavitvi teh povezav bomo uporabljali knjižnico XPT2046_Zaslon na dotik za zaznavanje dotikov. Spodaj vam puščam kodo, ki prikazuje gumb na zaslonu, ki spremeni barvo vsakič, ko ga pritisnete.
#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");
}
}
}
Koda zazna, ali je bil gumb pritisnjen, in spremeni barvo iz rdeče v zeleno. Prav tako lahko prilagodite položaj in velikost gumba glede na vaše potrebe.
Bistveno je zagotoviti, da je zaslon pravilen kalibrirano tako da dotiki pravilno ustrezajo koordinatam zaslona. Če opazite, da odziv na dotik ni natančen, bo morda potrebna kalibracija, povezana z ločljivostjo zaslona.