ILI9341 320×240 подключение к Arduino UNO, Nano и Mega

Содержание

Жидкокристаллический дисплей ILI9341 является популярным выбором для многих проектов, использующих Arduino. В данной статье мы рассмотрим подробное описание дисплея ILI9341, его подключение к Arduino, предоставим схему подключения и рассмотрим две важные библиотеки для работы с этим дисплеем: Adafruit_ILI9341.h и Adafruit_GFX.h.

Код опубликованный в этой статье подходит для следующих устройств ILI9341 c разрешением 320×240:

  • 2.8 «Touch Shield V2 (SPI)
  • 2.4″ TFT LCD with Touchscreen Breakout w/MicroSD Socket (сенсорным экраном и разъемом microSD) — ILI9341
  • 2.8″ TFT LCD with Touchscreen Breakout Board w/MicroSD Socket (сенсорной панелбю управления и разъемом microSD) — ILI9341
  • 2.2″ 18-bit color TFT LCD display with microSD card breakout(дисплей с разъемом для карты microSD) — ILI9340

Описание дисплея ILI9341

Дисплей ILI9341 представляет собой TFT LCD дисплеем с наиболее популярным разрешением 240×320 пикселей. Он обладает ярким и четким изображением, что является хорошим выбором для проектов на портативных и измерительных устройства, игровых консолях и прочее. Дисплей поддерживает 65 тысяч цветов и имеет широкий угол обзора.

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

Схема подключения разных плат Arduino к ILI9143 320×240 отличается лишь нахождением SPI интерфейса. Мы используем Arduino Uno, пины которой совпадает с Arduino Nano.

Таблица 1. Подключение ILI9341 к Arduino
ILI9143 320×240Arduino UnoArduino NanoArduino Mega
1CSЦифровой пин 8Цифровой пин 8Цифровой пин 53
2RSTЦифровой пин 9Цифровой пин 9Цифровой пин 49
3D/CЦифровой пин 10Цифровой пин 10Цифровой пин 48
4MOSIЦифровой пин 11Цифровой пин 11Цифровой пин 51
5SCKЦифровой пин 13Цифровой пин 13Цифровой пин 52
6VCC5V5V5V
7GNDGNDGNDGND
8BL (LED)5V5V5V
Подключение Arduino Uno к дисплею ili9341
Рисунок 1. Схема подключение ILI9341 320×240 к Arduino Uno
Подключение Arduino Mega к дисплею ili9341
Рисунок 2. Схема подключение ILI9341 320×240 к Arduino Mega

Библиотеки для работы с ILI9341 на Arduino

Для управления дисплеем ILI9341 на Arduino используются две ключевые библиотеки: Adafruit_ILI9341.h и Adafruit_GFX.h.

Adafruit_ILI9341.h — это библиотека, которая предоставляет функции для работы с дисплеем ILI9341. Она позволяет легко настраивать дисплей, выводить текст и графику, управлять цветами и другими параметрами.

Adafruit_GFX.h — это библиотека графики, которая предоставляет базовые функции для работы с графическими элементами на дисплее. Она содержит методы для рисования линий, прямоугольников, кругов и других форм.

Код пошивки Arduino для работы ILI9341

Написанная программа на языке С/C++ сначала инициализирует все необходимые переменные и производит калибровку экрана дисплея ILI9488. Первоначально отображается надпись «DocsTech Help You!» в течение 1 секунды белым цветом на черном фоне. Затем она меняется на «Touch display», что указывает на готовность к работе и возможность нажатия на экран. При касании выводится числовое значение этой точки на экране. Для вывода сложных изображений прошу прочитать документацию и подключить библиотеку Adafruit_ImageReader_EPD.h.
#include <Adafruit_GFX.h> #include <Adafruit_ILI9341.h> #include <TouchScreen.h> #define TFT_CS 10 #define TFT_RST 9 #define TFT_DC 8 Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST); // Определите пины для сенсорного экрана #define TS_XP A1 #define TS_YP A2 #define TS_XM 7 #define TS_YM 6 #define TS_RX 300 TouchScreen ts = TouchScreen(TS_XP, TS_YP, TS_XM, TS_YM, TS_RX); #define WHITE 0xFFFF #define BLACK 0x0000 void setup() { Serial.begin(9600); tft.begin(); tft.setRotation(3); // Если необходимо перевернуть экран tft.fillScreen(BLACK); // Заливаем экран черным цветом tft.setCursor(20, 100); tft.setTextColor(WHITE); tft.setTextSize(3); tft.print("DocsTech Help You!"); delay(1000); tft.fillScreen(BLACK); // Заливаем экран черным цветом tft.setCursor(20, 100); tft.print("Touch display"); } void loop() { TSPoint p = ts.getPoint(); if (p.z > 200) { // Проверка, что экран нажат с достаточной силой tft.fillScreen(BLACK); // Заливаем экран черным цветом tft.setCursor(20, 100); tft.print("Touch: "); tft.print("X = "); tft.print(p.x); tft.print(", Y = "); tft.println(p.y); delay(500); // Пауза после вывода информации о нажатии } }

Объяснение изменений:

  1. Определены пины для сенсорного экрана TS_XP, TS_YP, TS_XM, TS_YM и значение TS_RX для сопротивления. Эти значения могут варьироваться в зависимости от подключения вашего сенсорного экрана.
  2. Создание объекта
    TouchScreen
    теперь включает указанные пины: TouchScreen ts = TouchScreen(TS_XP, TS_YP, TS_XM, TS_YM, TS_RX);

Заключение

Дисплей ILI9341 – это отличное устройство для создания проектов с Arduino, требующих качественного графического отображения. Подключение дисплея ILI9341 к Arduino просто, а библиотеки Adafruit_ILI9341.h и Adafruit_GFX.h облегчают разработку приложений с использованием данного дисплея. Надеемся, что данное руководство поможет вам успешно внедрить дисплей ILI9341 в ваши проекты на Arduino.