Как да използвате дисплей ILI9341 с Arduino – пълен и подробен урок

  • TFT дисплеят ILI9341 комуникира чрез SPI интерфейс и изисква прецизни връзки.
  • От съществено значение е да използвате адаптери за логическо ниво, ако използвате 5V Arduino, за да избегнете повреда на дисплея.
  • Библиотеките Adafruit_GFX и Adafruit_ILI9341 са от съществено значение за програмиране на графики на екрана.
  • С дисплея ILI9341 могат да се реализират практически проекти като визуализация на данни или сензор за допир.

TFT с ST7789VI MCU контрол arduino-7

Днес TFT дисплеите с контролера ILI9341 са една от най-популярните опции за проекти за създаване на прототипи на Arduino поради тяхната гъвкавост и графични възможности. Ако сте търсили как да се възползвате от тези екрани във вашите проекти, вие сте попаднали на правилното място. Тук обясняваме всичко, което трябва да знаете, за да свържете, конфигурирате и използвате TFT екрана ILI9341, а също така ще видим някои много полезни примери за кодове.

Работата с този дисплей може да изглежда сложна в началото поради броя на необходимите щифтове и връзки, но след като разберете процеса, той става много по-прост. В тази статия ще видим стъпка по стъпка как да направите връзката, да я тествате и програмирате.

Материали, необходими за използване на дисплея ILI9341 с Arduino

  • Arduino UNO или 3.3V Arduino Pro Mini: Ако използвате a Arduino UNO, ще ви трябват адаптери за логическо ниво, за да избегнете повреда на екрана, тъй като работи с 3.3 V. Ако използвате 3.3V Arduino Pro Mini, можете да се свържете директно.
  • TFT екран ILI9341: 2.4 или 2.8 инчов екран с резолюция 240x320 пиксела.
  • Преобразувател на логически нива (ако използвате Arduino UNO): за адаптиране на нивата от 5V до 3.3V.
  • Макет y кабели на връзка.

Стъпка 1: Свържете дисплея ILI9341 към Arduino

TFT дисплеят ILI9341 използва SPI интерфейса за комуникация с Arduino, така че ще бъде важно да направите правилните връзки между SPI щифтовете на Arduino и дисплея. Следната таблица обяснява подробно как да направите основните връзки:

щифт на екрана Arduino Pin
SDO (MISO) Щифт 12
SCK Щифт 13
SDI (MOSI) Щифт 11
D / C Щифт 9
CS Щифт 10
GND Пин GND
VCC Пин 3.3V
Светодиод Пин 3.3V

Не забравяйте, че ако използвате a Arduino UNO, ще е необходимо да се използва адаптери на логическо ниво за преобразуване на 5V на щифтовете на Arduino в 3.3V. Ако използвате 3.3 V Arduino Pro Mini, тази предпазна мярка не е необходима.

Стъпка 2: Инсталирайте необходимите библиотеки

За да взаимодействаме с дисплея ILI9341, трябва да инсталираме някои библиотеки в Arduino IDE. Трябва да сме сигурни, че имаме следните библиотеки:

  • Adafruit_ILI9341: Това е основната библиотека за управление на дисплеи ILI9341 с Arduino.
  • Adafruit_GFX: Тази библиотека улеснява създаването на основни графики като линии, кръгове, правоъгълници и др.

За да инсталирате тези библиотеки, отворете Arduino IDE и отидете на Програма > Включване на библиотека > Управление на библиотеки и търсене ILI9341 за да инсталирате съответната библиотека. Освен това потърсете книжарницата Adafruit GFX и се уверете, че сте инсталирали правилния.

Стъпка 3: Тествайте TFT екрана с основен пример

Arduino IDE, типове данни, програмиране

След като библиотеките са инсталирани, е време да тествате екрана, за да се уверите, че всичко е правилно свързано и работи. Arduino IDE включва много пълен пример, който ще ни бъде от голяма полза. Нека заредим графичен тест:

  • Отворете Arduino IDE.
  • Отидете на Файл > Примери > Adafruit_ILI9341 > графичен тест.
  • Компилирайте и качете примера във вашия Arduino.

Ако всичко е минало добре, трябва да видите поредица от графики, показващи различни видове линии, форми и цветове на екрана.

Стъпка 4: Създайте практически проект: Показване на аналогови стойности на екрана ILI9341

Един от първите проекти, които можем да направим с този екран, е да покажем стойността на аналогов вход, като например напрежението на потенциометър. За целта ще използваме щифтовете на дисплея, които вече сме свързали, както и потенциометър, свързан към аналоговия вход A0 на Arduino.

Следният код показва как можем да прочетем аналоговата стойност на потенциометъра и да я покажем на екрана:

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

Тази програма непрекъснато отчита напрежението и го показва на екрана в текстов формат. Ако завъртите копчето на потенциометъра, трябва да видите промяната, отразена на екрана почти веднага.

Добавяне на бутон към сензорния екран ILI9341

В допълнение към показването на информация, дисплеят ILI9341 има и възможност за докосване, ако е оборудван с контролера XPT2046. Нека създадем прост пример, който показва как да разпознаваме докосвания на екрана.

Първо, трябва да направим връзки на сензорния контролер на екрана. Основните щифтове за сензорния контролер са:

  • TOUCH_CS: Пин 10.
  • TOUCH_IRQ: Пин 2.

След като направим тези връзки, ще използваме библиотеката XPT2046_Сензорен екран за откриване на докосвания. По-долу ви оставям код, който показва бутон на екрана, който променя цвета си при всяко натискане.

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

Кодът разпознава дали бутонът е бил натиснат и променя цвета си от червен на зелен. Можете също така да персонализирате позицията и размера на бутона според вашите нужди.

Важно е да се уверите, че екранът е правилен калибриран така че докосванията да съответстват правилно на координатите на екрана. Ако забележите, че реакцията на докосване не е точна, може да е необходимо калибриране, свързано с разделителната способност на екрана.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.