Paano Gamitin ang ILI9341 Display sa Arduino – Kumpleto at Detalyadong Tutorial

  • Ang ILI9341 TFT display ay nakikipag-ugnayan sa pamamagitan ng SPI interface at nangangailangan ng mga tumpak na koneksyon.
  • Mahalagang gumamit ng mga adaptor sa antas ng lohika kung gumagamit ng 5V Arduino upang maiwasang masira ang display.
  • Ang Adafruit_GFX at Adafruit_ILI9341 library ay mahalaga para sa programming graphics sa screen.
  • Ang mga praktikal na proyekto tulad ng data visualization o touch sensing ay maaaring maisakatuparan gamit ang ILI9341 display.

TFT na may ST7789VI MCU control arduino-7

Ngayon, ang mga TFT display na may ILI9341 controller ay isa sa mga pinakasikat na opsyon para sa Arduino prototyping projects dahil sa kanilang versatility at graphical na kakayahan. Kung hinahanap mo kung paano samantalahin ang mga screen na ito sa iyong mga proyekto, napunta ka sa tamang lugar. Dito ipinapaliwanag namin ang lahat ng kailangan mong malaman upang kumonekta, i-configure at gamitin ang ILI9341 TFT screen, at makikita rin namin ang ilang napakakapaki-pakinabang na mga halimbawa ng code.

Ang pagtatrabaho sa display na ito ay maaaring mukhang kumplikado sa una dahil sa bilang ng mga pin at koneksyon na kinakailangan, ngunit kapag naunawaan mo ang proseso, ito ay nagiging mas simple. Sa artikulong ito ay makikita natin ang hakbang-hakbang kung paano gawin ang koneksyon, subukan ito at i-program ito.

Mga materyales na kailangan para magamit ang ILI9341 display sa Arduino

  • Arduino UNO o 3.3V Arduino Pro Mini: Kung gagamit ka ng a Arduino UNO, kakailanganin mo ng mga adaptor sa antas ng lohika upang maiwasang masira ang screen, dahil gumagana ito sa 3.3V. Kung gumagamit ka ng 3.3V Arduino Pro Mini, maaari kang direktang kumonekta.
  • TFT screen ILI9341: 2.4 o 2.8 inch na screen na may 240x320 pixel na resolution.
  • Logic level converter (kung gagamitin mo Arduino UNO): upang iakma ang mga antas mula 5V hanggang 3.3V.
  • Breadboard y cables ng koneksyon.

Hakbang 1: Ikonekta ang ILI9341 display sa Arduino

Ang ILI9341 TFT display ay gumagamit ng SPI interface upang makipag-usap sa Arduino, kaya mahalaga na gawin ang mga tamang koneksyon sa pagitan ng mga SPI pin sa Arduino at sa display. Ang sumusunod na talahanayan ay nagpapaliwanag nang detalyado kung paano gawin ang mga pangunahing koneksyon:

screen pin Arduino Pin
SDO (MISO) I-pin 12
SCK I-pin 13
SDI (MOSI) I-pin 11
D / C I-pin 9
CS I-pin 10
GND I-pin ang GND
VCC Pin 3.3V
LED Pin 3.3V

Tandaan na kung gumagamit ka ng a Arduino UNO, kakailanganing gamitin ang mga adaptor sa antas ng lohika upang i-convert ang 5V ng Arduino pin sa 3.3V. Kung gumagamit ka ng 3.3V Arduino Pro Mini, hindi kinakailangan ang pag-iingat na ito.

Hakbang 2: I-install ang mga kinakailangang aklatan

Upang makipag-ugnayan sa display ng ILI9341, kailangan naming mag-install ng ilang mga aklatan sa Arduino IDE. Dapat nating tiyakin na mayroon tayong mga sumusunod na aklatan:

  • Adafruit_ILI9341: Ito ang pangunahing aklatan para magmaneho ng mga display ng ILI9341 gamit ang Arduino.
  • Adafruit_GFX: Pinapadali ng library na ito ang paggawa ng mga pangunahing graphics tulad ng mga linya, bilog, parihaba, atbp.

Upang i-install ang mga aklatang ito, buksan ang Arduino IDE at pumunta sa Programa > Isama ang library > Pamahalaan ang mga library at paghahanap ILI9341 upang i-install ang kaukulang aklatan. Gayundin, hanapin ang tindahan ng libro Adafruit GFX at tiyaking na-install mo ang tama.

Hakbang 3: Subukan ang TFT screen gamit ang isang pangunahing halimbawa

Arduino IDE, mga uri ng data, programming

Kapag na-install na ang mga aklatan, oras na upang subukan ang screen upang matiyak na ang lahat ay nakakonekta nang tama at gumagana. Ang Arduino IDE ay may kasamang isang kumpletong halimbawa na magiging malaking tulong sa amin. I-load natin ang graphictest:

  • Buksan ang Arduino IDE.
  • Pumunta sa File > Mga Halimbawa > Adafruit_ILI9341 > graphictest.
  • I-compile at i-upload ang halimbawa sa iyong Arduino.

Kung naging maayos ang lahat, dapat mong makita ang isang serye ng mga graph na nagpapakita ng iba't ibang uri ng mga linya, hugis at kulay sa screen.

Hakbang 4: Gumawa ng praktikal na proyekto: Ipakita ang mga analog na halaga sa screen ng ILI9341

Ang isa sa mga unang proyekto na magagawa natin sa screen na ito ay upang ipakita ang halaga ng isang analog input, tulad ng boltahe ng isang potentiometer. Para dito, gagamitin namin ang mga display pin na nakakonekta na namin, pati na rin ang isang potentiometer na konektado sa analog input A0 ng Arduino.

Ang sumusunod na code ay nagpapakita kung paano namin mababasa ang analog na halaga ng potentiometer at ipakita ito sa screen:

#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);
}

Ang program na ito ay patuloy na nagbabasa ng boltahe at ipinapakita ito sa screen sa format ng teksto. Kung pinihit mo ang potentiometer knob dapat mong makita kaagad ang pagbabagong makikita sa screen.

Pagdaragdag ng button sa ILI9341 touch screen

Bilang karagdagan sa pagpapakita ng impormasyon, ang ILI9341 display ay mayroon ding touch capability kung ito ay nilagyan ng XPT2046 controller. Gumawa tayo ng simpleng halimbawa na nagpapakita kung paano mag-detect ng mga pagpindot sa screen.

Una, kailangan nating gawin ang mga koneksyon ng screen touch controller. Ang mga pangunahing pin para sa touch controller ay:

  • TOUCH_CS: Pin 10.
  • TOUCH_IRQ: Pin 2.

Pagkatapos gawin ang mga koneksyon na ito, gagamitin namin ang library XPT2046_Touchscreen upang matukoy ang mga pagpindot. Sa ibaba iniiwan ko sa iyo ang isang code na nagpapakita ng isang button sa screen, na nagbabago ng kulay sa tuwing pinindot ito.

#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");
    }
  }
}

Nakikita ng code kung pinindot ang button at binago ang kulay nito mula pula hanggang berde. Maaari mo ring i-customize ang posisyon at laki ng button ayon sa iyong mga pangangailangan.

Ito ay mahalaga upang matiyak na ang screen ay tama naka-calibrate upang ang mga pagpindot ay tumutugma nang maayos sa mga coordinate ng screen. Kung napansin mong hindi tumpak ang pagtugon sa pagpindot, maaaring kailanganin ang isang pagkakalibrate na nauugnay sa resolution ng screen.


Simulan ang usapan

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.