Как подключить 1.8 TFT дисплей к Ардуино

Цветной TFT экран с диагональю 1.8 или 2.4 дюйма будет полезен для проектов, требующих вывода текста. Например, при создании часов с будильником или домашней метеостанции. Рассмотрим характеристики и распиновку цветного дисплея 1.8 TFT SPI и подключение модуля экрана 1.8 TFT SPI 128×160 v1.1 к Arduino или подключение дисплея 2.4 TFT SPI 240×320 к микроконтроллеру Arduino Uno.

1.8 TFT SPI дисплей характеристики, распиновка

С помощью платы Arduino и TFT ЖК-экрана можно выводить на экран большое количество графической и текстовой информации. Аббревиатура TFT означает «тонкопленочный транзистор». Своим названием этот экран обязан тому, что каждый пиксель состоит из конденсатора и небольшого транзистора, напоминающего тонкую пленку. В результате контрастность экрана увеличивается, в отличие от ЖК-экранов.

Дисплей 1.8 TFT SPI 128×160 характеристики, распиновка
Дисплей 1.8 TFT SPI 128×160 характеристики, распиновка

Характеристики дисплея 1.8 TFT SPI 128×160

  • Рабочее напряжение: 3,3 — 5 В
  • Рабочий ток: 90 мА
  • Диагональ: 1.8 дюйма
  • Разрешение: 128×160 px
  • Технология: TFT
  • Интерфейс: SPI
  • Драйверы матриц: ST7735
  • Количество цветов: 65536
  • Размеры: 50,8 × 36,6 мм

Цветной графический TFT-дисплей с диагональю 1,8″ имеет разрешение 128 x 160 пикселей. За работу модуля отвечает контроллер ST7735R, способный отображать до 65 000 цветов в формате RGB. На задней панели модуля расположен слот для SD-карты, которая используется для загрузки изображений на дисплей. Подключение к микроконтроллеру Arduino осуществляется через четырехпроводной интерфейс SPI.

Подключение дисплея 1.8 TFT SPI к Arduino

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • 1.8 TFT SPI 128×160 display;
  • провода «папа-мама».
Подключение дисплея 1.8 TFT LCD SPI к Arduino
Подключение дисплея 1.8 TFT LCD SPI к Arduino
TFT spi 1.8 Arduino Uno Arduino Nano Arduino Mega
LED 3.3V 3.3V 3.3V
SCK 13 13 52
SDA 11 11 51
A0 9 9 9
RESET 8 8 8
CS 10 10 10
GND GND GND GND
VСС 5V 5V 5V

Подключите tft дисплей по шине spi к Arduino, как показано на схеме выше. Обратите внимание, что порты SCK и SDA на плате Arduino Mega расположены на портах 52 и 51 соответственно. Для первого знакомства с экраном ST7735 нет необходимости устанавливать какие-либо библиотеки. В программе используются стандартные библиотеки TFT.h (библиотека для экрана) и SPI.h (библиотека для шины spi).

Скетч для подключения дисплея 1.8 TFT к Ардуино

#include "TFT.h"
#include "SPI.h"

#define cs 10 // пин для подключения CS
#define dc 9 // пин для подключения A0
#define rst 8 // пин для подключения reset

TFT screen = TFT(cs, dc, rst);

void setup() {
  screen.begin();

  // цвет экрана ( r , g , b )
  screen.background(0, 0, 0); 
  // размер шрифта
  screen.setTextSize(1);
  // цвет текста ( r , g , b )
  screen.stroke(255, 255, 255);

  // вывод на экран текста с координатами x и y
  screen.text("Hello, World!", 45, 20);
  delay(1000);
}

void loop() {
  // очистка экрана дисплея
  screen.background(0, 0, 0);
  // размер шрифта
  screen.setTextSize(2);

  // плавное изменение цвета текста
  for (int i = 0; i <= 255; i=i+5) {
    screen.stroke(i, 255 - i, 255);
    screen.text("Hello, World!", 5, 50);
    delay(5);
  }
  delay(1000);

  // очистка экрана дисплея
  screen.background(0, 0, 0);
  // размер шрифта
  screen.setTextSize(4);
 
  // прокрутка текста справа - налево
  for (int i = 130; i >= -360; i = i - 10) {
    screen.background(0, 0, 0);
    screen.stroke(0, 255, 0);
    screen.text("Hello, World!", i, 40);
    delay(5);
  }
  delay(1000);
}

Пояснения к коду:

  1. для определения цвета экрана и текста используется палитра RGB;
  2. screen.setTextSize(); устанавливает размер текста. Размер 1 соответствует высоте шрифта в 10 пикселей, размер 2 — высоте в 20 пикселей и так далее.



Приведенный ниже пример программы для экрана TFT демонстрирует возможность рисования на экране различных геометрических фигур с помощью команд из библиотеки TFT.h. Функции этой библиотеки позволяют отображать фигуры с различными параметрами — цветом контура, заливкой и размером. Напомним, что 1,8 TFT ЖК-экран имеет 128 пикселей по горизонтали и 160 пикселей по вертикали.

Скетч для вывода анимации на экране TFT Arduino

#include "TFT.h"
#include "SPI.h"

#define cs 10 // пин для подключения CS
#define dc 9 // пин для подключения A0
#define rst 8 // пин для подключения reset

TFT screen = TFT(cs, dc, rst);

void setup() {
  screen.begin();

  // цвет экрана ( r , g , b )
  screen.background(255, 255, 255);
  // цвет текста ( r , g , b )
  screen.stroke(0, 0, 0);
}

void loop() {
  // рисуем круг с черным контуром
  screen.stroke(0, 0, 0);
  screen.noFill();
  screen.circle(80, 60, 45);
  delay(500);

  // рисуем два круга с синей заливкой
  screen.fill(255, 0, 0);
  screen.circle(60, 50, 7);
  screen.circle(100, 50, 7);
  delay(500);

  // проводим две черные линии
  screen.fill(0, 0, 0);
  screen.line(56, 35, 70, 38);
  screen.line(90, 38, 104, 35);
  delay(500);

  // рисуем прямоугольник черного цвета
  screen.fill(0, 0, 0);
  screen.rect(78, 55, 4, 20);
  delay(500);

  // выводим точку с различными координатами
  screen.stroke(0, 0, 255);
  for (int i = 65; i <= 95; i++) {
    screen.point(i, 85);
    delay(30);
  }
  delay(500);

  // очистка экрана
  screen.background(255, 255, 255);
  delay(1000);
}

Пояснения к коду:

  1. команда очистки экрана screen.background(); может быть использована в любом месте программы.

Библиотека TFT.h описание команд и функций

  • screen.begin() — инициализация экрана.
  • screen.background(red, green, blue) — стирает все на экране в указанный цвет. Функция используется для очистки экрана.
  • screen.stroke(red, green, blue) — команда вызывается перед выводом текста или рисованием объекта на экране и задает цвет линий и границ вокруг фигур.
  • screen.noStroke() — после вызова этой команды объекты не будут иметь цвета обводки.
  • screen.fill(red, green, blue) — эта функция устанавливает цвет заливки для фигур.
  • screen.noFill() — после вызова этой функции фигуры не будут иметь цвета заливки.
  • screen.setTextSize(size) — устанавливает размер текста. Размер 1 соответствует высоте 10 пикселей, размер 2 — высоте 20 пикселей и так далее.
  • screen.text(text, xPos, yPos) — выводит текст на tft-экран по указанным координатам.
  • screen.point(xPos, yPos) — функция для отображения точки в заданных координатах.
  • screen.line(xStart, yStart, xEnd, yEnd) — строит линию между двумя точками.
  • screen.rect(xStart, yStart, width, height) — отображает на экране прямоугольник. В функции необходимо указать 4 аргумента, первые два аргумента — левый верхний угол фигуры, последние два параметра — ширина и высота прямоугольника.
  • screen.circle(xPos, yPos, radius) — функция рисует на экране окружность с указанным в функции центром и заданным диаметром, который всегда будет нечетным числом.
  • screen.image(image, xPos, yPos) — выводит изображение с SD-карты в указанное место на tft-экране.

Заключение. Как вы убедились, TFT-экран, связанный с платой Arduino, позволяет пользователю изменять цвет экрана и отображаемого текста, использовать различные графические элементы и выводить изображения с SD-карты. Эта функциональность будет рассмотрена в следующей статье. Если у вас остались вопросы по подключению 1,8″ TFT SPI 128×160 v1.1 к Arduino — оставляйте их в комментариях к этой статье.



6 Replies to “Как подключить 1.8 TFT SPI 128×160 к Ардуино”

  1. Спасибо, какой функцией библиотеки повернуть экран на 90/180 градусов?

  2. Еще раз спасибо за ваш труд. Нашел ответ в примере другой библиотеки TFT_eSPI.h заменив tft.setRotation(3); на screen.setRotation(3);

  3. Как вывести на дисплей значения числовых переменных в данной библиотеке? (например BYTE или WORD?)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.