I dag er TFT-skærme med ILI9341-controlleren en af de mest populære muligheder for Arduino-prototyping-projekter på grund af deres alsidighed og grafiske muligheder. Hvis du har ledt efter, hvordan du kan udnytte disse skærme i dine projekter, er du kommet til det rigtige sted. Her forklarer vi alt, hvad du behøver at vide for at forbinde, konfigurere og bruge ILI9341 TFT-skærmen, og vi vil også se nogle meget nyttige kodeeksempler.
Arbejdet med denne skærm kan virke kompliceret i starten på grund af antallet af stifter og forbindelser, der kræves, men når du først forstår processen, bliver det meget enklere. I denne artikel skal vi se trin for trin, hvordan man laver forbindelsen, tester den og programmerer den.
Materialer, der er nødvendige for at bruge ILI9341-skærmen med Arduino
- Arduino UNO eller 3.3V Arduino Pro Mini: Hvis du bruger en Arduino UNO, skal du bruge logiske niveauadaptere for at undgå at beskadige skærmen, da den fungerer med 3.3V. Hvis du bruger en 3.3V Arduino Pro Mini, kan du tilslutte direkte.
- TFT skærm ILI9341: 2.4 eller 2.8 tommer skærm med 240x320 pixel opløsning.
- Logisk niveau konverter (hvis du bruger Arduino UNO): for at tilpasse niveauerne fra 5V til 3.3V.
- Brødbræt y kabler af forbindelse.
Trin 1: Tilslut ILI9341-skærmen til Arduino
ILI9341 TFT-skærmen bruger SPI-grænsefladen til at kommunikere med Arduino, så det vil være vigtigt at lave de korrekte forbindelser mellem SPI-stifterne på Arduino og skærmen. Følgende tabel forklarer i detaljer, hvordan du laver de grundlæggende forbindelser:
skærmstift | Arduino Pin |
---|---|
SDO (MISO) | Pind 12 |
SCK | Pind 13 |
SDI (MOSI) | Pind 11 |
D / C | Pind 9 |
CS | Pind 10 |
GND | Pin GND |
VCC | Ben 3.3V |
LED | Ben 3.3V |
Husk, at hvis du bruger en Arduino UNO, vil det være nødvendigt at bruge logiske niveau adaptere at konvertere 5V af Arduino-stifterne til 3.3V. Hvis du bruger en 3.3V Arduino Pro Mini, er denne forholdsregel ikke nødvendig.
Trin 2: Installer de nødvendige biblioteker
For at interagere med ILI9341-skærmen skal vi installere nogle biblioteker i Arduino IDE. Vi skal sørge for at have følgende biblioteker:
- Adafruit_ILI9341: Dette er hovedbiblioteket til at drive ILI9341-skærme med Arduino.
- Adafruit_GFX: Dette bibliotek gør det nemt at skabe grundlæggende grafik såsom linjer, cirkler, rektangler osv.
For at installere disse biblioteker skal du åbne Arduino IDE og gå til Program > Inkluder bibliotek > Administrer biblioteker og søg ILI9341 for at installere det tilsvarende bibliotek. Se også efter boghandlen Adafruit GFX og sørg for at installere den rigtige.
Trin 3: Test TFT-skærmen med et grundlæggende eksempel
Når bibliotekerne er installeret, er det tid til at teste skærmen for at sikre, at alt er korrekt tilsluttet og fungerer. Arduino IDE indeholder et meget komplet eksempel, som vil være til stor hjælp for os. Lad os indlæse grafisk test:
- Åbn Arduino IDE.
- Gå til Fil > Eksempler > Adafruit_ILI9341 > graphictest.
- Kompiler og upload eksemplet til din Arduino.
Hvis alt gik godt, skulle du se en række grafer, der viser forskellige typer linjer, former og farver på skærmen.
Trin 4: Opret et praktisk projekt: Vis analoge værdier på ILI9341-skærmen
Et af de første projekter, vi kan lave med denne skærm, er at vise værdien af en analog indgang, såsom spændingen af et potentiometer. Til dette vil vi bruge de skærmstifter, som vi allerede har tilsluttet, samt et potentiometer forbundet til den analoge indgang A0 på Arduino.
Følgende kode viser, hvordan vi kan læse potentiometerets analoge værdi og vise den på skærmen:
#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);
}
Dette program læser løbende spændingen og viser den på skærmen i tekstformat. Hvis du drejer på potentiometerknappen, bør du se ændringen afspejlet på skærmen næsten med det samme.
Tilføjelse af en knap på ILI9341-berøringsskærmen
Ud over at vise information har ILI9341-skærmen også berøringsfunktion, hvis den er udstyret med XPT2046-controlleren. Lad os lave et simpelt eksempel, der viser, hvordan man registrerer berøringer på skærmen.
Først skal vi oprette forbindelse til skærmens touch-controller. De vigtigste ben til touch-controlleren er:
- TOUCH_CS: Pin 10.
- TOUCH_IRQ: Pin 2.
Efter at have lavet disse forbindelser, vil vi bruge biblioteket XPT2046_Touchscreen at opdage berøringer. Nedenfor efterlader jeg dig en kode, der viser en knap på skærmen, som skifter farve hver gang der trykkes på den.
#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");
}
}
}
Koden registrerer, om knappen er blevet trykket, og skifter farve fra rød til grøn. Du kan også tilpasse knappens placering og størrelse efter dine behov.
Det er vigtigt at sikre, at skærmen er korrekt kalibreret så berøringerne svarer korrekt til skærmens koordinater. Hvis du bemærker, at berøringsresponsen ikke er nøjagtig, kan en kalibrering relateret til skærmopløsningen være nødvendig.