DocsTech
/
Дисплеи
/

~ cd arduino к tft ili9488: код, библиотеки и схема подключения

Сводка

Дисплей ILI9488 — это качественный и яркий TFT LCD дисплей с разрешением 320×480 пикселей, способный выводить насыщенные и четкие изображения. Этот дисплей имеет широкие углы обзора, что делает его идеальным для различных проектов, включая умные устройства, контрольные панели и прочие самодельные устройства.

Библиотеки для дисплея ILI9488

Библиотеки LCDWIKI_GUI, LCDWIKI_SPI и LCDWIKI_TOUCH созданы для упрощения работы с графическими дисплеями на микроконтроллерах Arduino, обеспечивая функциональное разделение для работы с графикой, управлением через SPI и сенсорными экранами.

Библиотека LCDWIKI_GUI: Библиотека базового графического интерфейса, предоставляющая обширный набор функций для рисования примитивов, отображения текста и работы с цветами на экране. Она облегчает создание графических элементов и служит основой для других библиотек. Скачать и прочитать документацию по UTFT.h можно на github.

Библиотека LCDWIKI_SPI: Отвечает за взаимодействие с дисплеями через интерфейс SPI. Она поддерживает различные модели контроллеров, включая ILI9488, и обеспечивает настройку и управление дисплеем, включая цветопередачу и поворот экрана. Ссылка на скачивание — github.

Библиотека LCDWIKI_TOUCH: Позволяет интегрировать сенсорные экраны, управляя получением данных о касаниях и координатах. Поддерживает работу с резистивными сенсорами, реализуя программный SPI, что дает гибкость при использовании любых цифровых пинов Arduino. Ссылка на скачивание — github.

Схема подключения Arduino к ILI9488

Схема подключения между Arduino и ILI9488 очень проста! Накладываем сверху(ПРОМАХУТЬСЯ НЕ ВОЗМОЖНО). Для каждого Arduino свой формат платы:

Таблица 1. Подключение Arduino Uno с ILI9488

ILI9488Arduino Uno
1.TFT_CSA5
2.TFT_DCA3
3.TFT_RSTA4
4.TFT_LEDA0
5.TOUCH_CS2
6.TOUCH_CLK3
7.TOUCH_OUT4
8.TOUCH_IN5
9.TOUCH_IRQ6
Наложение Arduino Uno с ILI9488
Рисунок 1. Наложение Arduino UNO с ILI9488

Пример кода Arduino для работы с дисплеем ILI9488

Теперь давайте рассмотрим код для Arduino Mega и дисплея ILI9488, используя библиотеки UTFT.h и URTouch.h. Написанная программа на языке С/C++ использует две функции setup и loop . setup() инициализирует дисплей и сенсорную панель, выводит сообщение на экране. loop() постоянно проверяет касание экрана. При наличии касания считывает координаты и отображает их на дисплее.
...
Копировать
#include <LCDWIKI_TOUCH.h>    // Библиотека для работы с сенсорной панелью
#include <cali_para.h>
#include <mcu_touch_magic.h>

#include <LCDWIKI_SPI.h>      // SPI-библиотека для работы с дисплеем ILI9488
#include <lcd_spi_registers.h>
#include <mcu_spi_magic.h>

#include <LCDWIKI_GUI.h>      // Библиотека GUI для дисплея      

// Определение цветов
#define BLACK   0x0000
#define WHITE   0xFFFF
#define GREEN   0x07E0

// Настройка пинов для дисплея ILI9488
#define TFT_CS   A5       // Chip Select для дисплея
#define TFT_DC    A3       // Data/Command для дисплея
#define TFT_RST   A4       // Reset для дисплея (установите -1, если не используется)
#define TFT_LED   A0      // Подсветка (если есть, иначе -1)

// Настройка пинов для сенсорной панели
#define TOUCH_CS  2       // Chip Select для сенсорной панели
#define TOUCH_CLK 3      // Clock для сенсора
#define TOUCH_OUT 4      // MISO для сенсора
#define TOUCH_IN  5      // MOSI для сенсора
#define TOUCH_IRQ 6       // Пин прерывания для сенсора (если используется)

// Инициализация дисплея и сенсорной панели
LCDWIKI_SPI tft(ILI9488, TFT_CS, TFT_DC, TFT_RST, TFT_LED); // Инициализация дисплея ILI9488
LCDWIKI_TOUCH ts(TOUCH_CS, TOUCH_CLK, TOUCH_OUT, TOUCH_IN, TOUCH_IRQ); // Инициализация сенсорной панели

void setup() {
  // Инициализация дисплея
  tft.Init_LCD();
  tft.Fill_Screen(BLACK);
  tft.Set_Rotation(1); // Ориентация экрана (1 - горизонтальная)

  // Инициализация сенсорной панели
  ts.TP_Set_Rotation(1);
  ts.TP_Init(tft.Get_Rotation(),tft.Get_Display_Width(),tft.Get_Display_Height()); 

  // Приветственное сообщение на дисплее
  tft.Set_Text_colour(WHITE);
  tft.Set_Text_Size(2);
  tft.Print_String("Touch the screen!", 10, 10);
}

void loop() {
  uint16_t touchX, touchY;

  // Проверка нажатия на экран
  if (ts.TP_Scan(0)) { // Режим 0 - однократное сканирование касания
    if (ts.TP_Read_Coordinate(&touchX, &touchY)) { // Чтение координат касания

      // Очищаем область для отображения координат
      tft.Fill_Rect(10, 40, 300, 50, BLACK);

      // Отображаем координаты касания на экране
      tft.Set_Text_colour(GREEN);
      tft.Print_String("Touch at: ", 10, 40);
      tft.Print_Number_Int(touchX, 100, 40, 4, ' ', 10);
      tft.Print_String(",", 140, 40);
      tft.Print_Number_Int(touchY, 150, 40, 4, ' ', 10);
    }
  }
}

Основные шаги работы программы:

  1. Инициализация дисплея и сенсорной панели:
    • В начале программы создаются объекты для дисплея и сенсорной панели, указываются пины для управления.
    • В функции setup происходит инициализация дисплея (tft.Init_LCD()) и настройка его ориентации (tft.Set_Rotation(1)). Также экран очищается, заливается черным цветом, и выводится сообщение «Touch the screen!» белым цветом, приглашая пользователя коснуться экрана.
    • Сенсорная панель инициализируется с помощью функции TP_Init, где указываются размеры экрана и ориентация сенсора. Также с помощью TP_Set_Rotation(1) устанавливается ориентация сенсорной панели, чтобы ее положение совпадало с ориентацией дисплея.
  2. Цикл loop:
    • В основном цикле программа постоянно проверяет, есть ли касание экрана с помощью TP_Scan(0).
    • Если экран был коснут, TP_Read_Coordinate(&touchX, &touchY) считывает координаты касания (горизонтальное и вертикальное положение) и сохраняет их в переменные touchX и touchY.
  3. Отображение координат на экране:
    • Если координаты были успешно считаны, очищается часть экрана, где будут выводиться координаты, чтобы обновить данные.
    • Далее координаты выводятся зеленым цветом с помощью Print_Number_Int, показывая, где именно произошло касание.

Заключение

Надеюсь, данная статья поможет вам успешно подключить и использовать дисплей ILI9488 с Arduino, используя соответствующие библиотеки.

Главная
Курсы
Вебинары
LCD 1602 подключение по I2C к Arduino UNO, Nano и Mega
SSD1306 подключение по I2C к Arduino UNO, Nano и Mega
Подключение ST7735 (128/80)x(128/160) к любому Arduino
ILI9341 320×240 подключение к Arduino UNO, Nano и Mega
LCD 2004 и Arduino: описание, подключение I2C и код
Подключение SH1106 к Arduino: код, схема и библиотеки
Подключение ST7789 к Arduino: код, схема и библиотеки
Arduino к ILI9486: код, библиотека и схема подключения
Arduino к TFT ILI9488: код, библиотеки и схема подключения
Подключение Arduino к ILI9163 TFT 128×160, 128×128 и 320×240
Закрыть