Sådan bruger du ILI9341 Display med Arduino – Komplet og detaljeret vejledning

  • ILI9341 TFT-skærmen kommunikerer via SPI-grænsefladen og kræver præcise forbindelser.
  • Det er vigtigt at bruge logiske niveauadaptere, hvis du bruger en 5V Arduino for at undgå at beskadige skærmen.
  • Adafruit_GFX og Adafruit_ILI9341 bibliotekerne er essentielle for programmering af grafik på skærmen.
  • Praktiske projekter såsom datavisualisering eller berøringsføling kan realiseres med ILI9341-skærmen.

TFT med ST7789VI MCU kontrol arduino-7

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

Arduino IDE, datatyper, programmering

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.


Start samtalen

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.