Сводка
Дисплей 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
№ | ILI9488 | Arduino Uno |
---|---|---|
1. | TFT_CS | A5 |
2. | TFT_DC | A3 |
3. | TFT_RST | A4 |
4. | TFT_LED | A0 |
5. | TOUCH_CS | 2 |
6. | TOUCH_CLK | 3 |
7. | TOUCH_OUT | 4 |
8. | TOUCH_IN | 5 |
9. | TOUCH_IRQ | 6 |
- Arduino Uno — «3,5» TFT LCD for arduino uno»
- Arduino Mega — «3.8’/3.95′ LCD MODULE for Mega2560»

Пример кода Arduino для работы с дисплеем ILI9488
#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);
}
}
}
Основные шаги работы программы:
- Инициализация дисплея и сенсорной панели:
- В начале программы создаются объекты для дисплея и сенсорной панели, указываются пины для управления.
- В функции
происходит инициализация дисплея (tft.Init_LCD()) и настройка его ориентации (tft.Set_Rotation(1)). Также экран очищается, заливается черным цветом, и выводится сообщение «Touch the screen!» белым цветом, приглашая пользователя коснуться экрана.setup - Сенсорная панель инициализируется с помощью функции TP_Init, где указываются размеры экрана и ориентация сенсора. Также с помощью TP_Set_Rotation(1) устанавливается ориентация сенсорной панели, чтобы ее положение совпадало с ориентацией дисплея.
- Цикл loop:
- В основном цикле программа постоянно проверяет, есть ли касание экрана с помощью TP_Scan(0).
- Если экран был коснут, TP_Read_Coordinate(&touchX, &touchY) считывает координаты касания (горизонтальное и вертикальное положение) и сохраняет их в переменные touchX и touchY.
- Отображение координат на экране:
- Если координаты были успешно считаны, очищается часть экрана, где будут выводиться координаты, чтобы обновить данные.
- Далее координаты выводятся зеленым цветом с помощью Print_Number_Int, показывая, где именно произошло касание.
Заключение
Надеюсь, данная статья поможет вам успешно подключить и использовать дисплей ILI9488 с Arduino, используя соответствующие библиотеки.