Цветной TFT-дисплей SPI 320×240 используется для отображения текста и графических элементов: иконок, картинок, графиков, кадров анимации.
Основные характеристики дисплея:
- Наименование: TFT01-22SP
- Контроллер: ILI9341C
- Диагональ: 3,2 дюйма
- Напряжение питание: 5 В
- Напряжение сигналов: 3,3 В
- Разрешение: 240 x 320 (RGB)
Для работы с данными дисплеями отлично подойдет библиотека UTFT. Библиотека достаточно простая и удобная для использования. Библиотека содержит несколько готовых примеров.
Базовые функции библиотеки:
- InitLCD([положение]); – Инициирует начало работы с дисплеем. Необязательный параметр может принимать одно из двух значений: PORTRAIT (вертикальная ориентация) или LANDSCAPE (горизонтальная ориентация — по умолчанию).
- clrScr(); – Очищает дисплей, стирая всю отображаемую на дисплее информацию и заливая дисплей черным цветом.
- fillScr(color); – Очищает дисплей, стирая всю отображаемую на дисплее информацию и заливая его указанным в качестве параметра цветом фона.
- getDisplayXSize(); – Возвращает количество пикселей дисплея по горизонтали, число типа int.
- getDisplayYSize(); – Возвращает количество пикселей дисплея по вертикали, число типа int.
- setColor(color); – Выбор цвета для текста и фигур, выводимых после данной функции.
- getColor(); – Возвращает установленный цвет для текста и фигур в формате RGB565, число типа word.
- setBackColor(color); – Выбор цвета для фона текста, выводимого после данной функции.
- getBackColor(); – Возвращает установленный цвет для фона текста в формате RGB565, число типа word.
- setFont(fontName); – Выбор шрифта для текста выводимого после данной функции.
- getFont(); – Возвращает указатель на выбранный шрифт.
- getFontXsize(); – Возвращает количество пикселей в одном символе шрифта, по ширине.
- getFontYsize(); – Возвращает количество пикселей в одном символе шрифта, по высоте.
- print(str,x,y[,r]); – Вывод на дисплей строк или содержимого строковых переменных.
- printNumI(int,x,y[,len[,sym]]); – Вывод на дисплей целого числа или содержимого целочисленной переменной.
- printNumF(float,dec,x,y[,sym1[,len[,sym2]]]); – Вывод на дисплей вещественного числа или содержимого переменной вещественного типа
- drawPixel(x,y); – Вывод на дисплей точки. Цвет точки определяется текущим значением цвета, устанавливаемым командой setColor().
- drawLine(x1,y1,x2,y2); – Вывод на дисплей линии, заданной координатами двух точек.
- drawRect(x1,y1,x2,y2); – Вывод на дисплей прямоугольника, противоположные углы которого заданы координатами двух точек.
- drawRoundRect(x1,y1,x2,y2); – Вывод на дисплей прямоугольника со скругленными углами.
- fillRect(x1,y1,x2,y2); – Вывод на дисплей закрашенного прямоугольника.
- drawCircle(x,y,R); – Вывод на дисплей окружности, определяемую координатами центра и радиусом.
- fillCircle(x,y,R); – Вывод на дисплей закрашенной окружности.
- drawBitmap(x1,y1,x2,y2,data[,scale]); – Вывод на дисплей картинки из массива.
Так как работа логики имеет напряжение 3,3 В, то подключение дисплея к плате Arduino имеет свои особенности, выводы дисплея SDI (MOSI), SCK, CS, RESET, DC необходимо подключать к плате Arduino через делители напряжения на резисторах.
Arduino | TFT-дисплей SPI 320×240 |
+5V | VCC |
GND | GND |
D8 через делитель | SDI (MOSI) |
D9 через делитель | SCK |
D12 через делитель | CS |
D11 через делитель | RESET |
D10 через делитель | DC |
+3.3V | LED |
Библиотека:
Тестовый скетч — вывод текста
// библиотека для работы с дисплеем #include <UTFT.h> // создаём объект класса UTFT // и передаём идентификатор модели дисплея и номера пинов UTFT myGLCD(TFT01_22SP, 8, 9, 12, 11, 10); // SDI (MOSI), SCK, CS, RESET, DC // объявления встроенного шрифта extern uint8_t BigFont[]; void setup() { // инициализируем дисплей с вертикальной ориентацией myGLCD.InitLCD(0); // очищаем экран myGLCD.clrScr(); // выбираем большой шрифт myGLCD.setFont(BigFont); // устанавливаем красный цвет «чернил» для печати и рисования myGLCD.setColor(VGA_RED); // печатаем строку в указанной строке позиции myGLCD.print("Hello, World!", CENTER, 0); // устанавливаем синий цвет «чернил» для печати и рисования myGLCD.setColor(VGA_BLUE); // печатаем строку в указанной строке позиции myGLCD.print("Hello, World!", CENTER, 36); // устанавливаем зелёный цвет «чернил» для печати и рисования myGLCD.setColor(VGA_GREEN); // печатаем строку в указанной строке позиции myGLCD.print("Hello, World!", CENTER, 72); // устанавливаем серебряный цвет «чернил» для печати и рисования myGLCD.setColor(VGA_SILVER); // печатаем строку в указанной строке позиции myGLCD.print("Hello, World!", CENTER, 108); } void loop() { }