Сегодня TFT-дисплеи с контроллером ILI9341 являются одним из самых популярных вариантов для проектов прототипирования Arduino благодаря своей универсальности и графическим возможностям. Если вы искали, как использовать эти экраны в своих проектах, вы попали по адресу. Здесь мы объясним все, что вам нужно знать для подключения, настройки и использования TFT-экрана ILI9341, а также увидим несколько очень полезных примеров кода.
Работа с этим дисплеем поначалу может показаться сложной из-за количества необходимых контактов и соединений, но как только вы поймете процесс, все станет намного проще. В этой статье мы шаг за шагом рассмотрим, как установить соединение, протестировать его и запрограммировать.
Материалы, необходимые для использования дисплея ILI9341 с Arduino
- Arduino UNO или Arduino Pro Mini 3.3 В.: Если вы используете Arduino UNO, вам потребуются адаптеры логического уровня, чтобы не повредить экран, поскольку он работает с напряжением 3.3 В. Если вы используете Arduino Pro Mini 3.3 В, вы можете подключиться напрямую.
- TFT-экран ILI9341: экран с диагональю 2.4 или 2.8 дюйма и разрешением 240x320 пикселей.
- Преобразователь логических уровней (если вы используете Arduino UNO): для адаптации уровней от 5 В до 3.3 В.
- Макетная плата y Кабели де conexion.
Шаг 1. Подключите дисплей ILI9341 к Arduino.
TFT-дисплей ILI9341 использует интерфейс SPI для связи с Arduino, поэтому важно правильно подключить контакты SPI на Arduino и дисплее. В следующей таблице подробно объясняется, как выполнить основные подключения:
| экранный штифт | вывод ардуино |
|---|---|
| СДО (МИСО) | Контакт 12 |
| SCK | Контакт 13 |
| СДИ (МОСИ) | Контакт 11 |
| ОКРУГ КОЛУМБИЯ | Контакт 9 |
| CS | Контакт 10 |
| GND | Контакт GND |
| VCC | Контакт 3.3 В |
| LED | Контакт 3.3 В |
Помните, что если вы используете Arduino UNO, необходимо будет использовать адаптеры логического уровня чтобы преобразовать 5 В на выводах Arduino в 3.3 В. Если вы используете Arduino Pro Mini с напряжением 3.3 В, в этой мере предосторожности нет необходимости.
Шаг 2. Установите необходимые библиотеки
Для взаимодействия с дисплеем ILI9341 нам необходимо установить некоторые библиотеки в Arduino IDE. Мы должны убедиться, что у нас есть следующие библиотеки:
- Адафрут_ИЛИ9341: это основная библиотека для управления дисплеями ILI9341 с помощью Arduino.
- Адафрут_GFX: эта библиотека позволяет легко создавать базовую графику, такую как линии, круги, прямоугольники и т. д.
Чтобы установить эти библиотеки, откройте Arduino IDE и перейдите в Программа > Включить библиотеку > Управление библиотеками и поиск ILI9341 для установки соответствующей библиотеки. Также найдите книжный магазин Адафрут GFX и убедитесь, что вы установили правильный.
Шаг 3. Проверьте TFT-экран на простом примере.

После установки библиотек пришло время протестировать экран, чтобы убедиться, что все правильно подключено и работает. Arduino IDE включает очень полный пример, который нам очень поможет. Давайте загрузим графический тест:
- Откройте IDE Ардуино.
- Перейти к Файл > Примеры > Adafruit_ILI9341 >graphictest.
- Скомпилируйте и загрузите пример в 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");
}
}
}
Код определяет, была ли нажата кнопка, и меняет ее цвет с красного на зеленый. Вы также можете настроить положение и размер кнопки в соответствии с вашими потребностями.
Очень важно убедиться, что экран установлен правильно. откалиброванный чтобы касания правильно соответствовали координатам экрана. Если вы заметили, что реакция на касание неточна, может потребоваться калибровка, связанная с разрешением экрана.