~cd 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×240
Arduino Uno
Arduino Nano
Arduino Mega
1
CS
Цифровой пин 8
Цифровой пин 8
Цифровой пин 53
2
RST
Цифровой пин 9
Цифровой пин 9
Цифровой пин 49
3
D/C
Цифровой пин 10
Цифровой пин 10
Цифровой пин 48
4
MOSI
Цифровой пин 11
Цифровой пин 11
Цифровой пин 51
5
SCK
Цифровой пин 13
Цифровой пин 13
Цифровой пин 52
6
VCC
5V
5V
5V
7
GND
GND
GND
GND
8
BL (LED)
5V
5V
5V
"aligncenter size-full">
Рисунок 1. Схема подключение ILI9341 320×240 к Arduino Uno
"aligncenter size-full">
Рисунок 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); // Пауза после вывода информации о нажатии
}
}
Объяснение изменений:
Определены пины для сенсорного экрана TS_XP, TS_YP, TS_XM, TS_YM и значение TS_RX для сопротивления. Эти значения могут варьироваться в зависимости от подключения вашего сенсорного экрана.
Создание объекта 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.