Руководство по дисплею 1.8 TFT с Arduino

В этом руководстве мы покажем вам, как использовать дисплей 1.8 TFT с Arduino. Вы узнаете, как подключить дисплей, выводить текст, рисовать фигуры и отображать изображения на экране.

Руководство по дисплею 1.8 TFT с Arduino

Знакомство с дисплеем 1.8 TFT

1.8 TFT — это цветной дисплей с разрешением 128 x 160 цветных пикселей. Дисплей может загружать изображения с SD-карты — на задней стороне есть слот для SD-карты. На следующем рисунке показан вид экрана спереди и сзади.

1.8 TFT дисплей — вид спереди и сзади

Этот модуль использует SPI-интерфейс — см. подключение ниже. Для управления дисплеем мы будем использовать библиотеку TFT, которая уже включена в Arduino IDE 1.0.5 и более поздние версии.

Где купить?

1.8 TFT LCD дисплей

Вы можете приобрести дисплей 1.8 TFT примерно за $3 — проверьте цены на Maker Advisor.

Вы можете воспользоваться приведёнными выше ссылками или перейти напрямую на MakerAdvisor.com/tools, чтобы найти все детали для ваших проектов по лучшей цене!

Подключение выводов

В таблице ниже показано подключение дисплея 1.8 TFT к Arduino UNO.

1.8 TFT Display

Подключение к Arduino Uno

LED

3.3 V

SCK

13

SDA

11

A0 или DC

9

RESET

8

CS

10

GND

GND

VCC

5 V

Примечание: у разных плат Arduino разные выводы SPI. Если вы используете другую плату Arduino, проверьте официальную документацию Arduino.

Инициализация дисплея

Дисплей TFT общается с Arduino по SPI-интерфейсу, поэтому вам нужно подключить библиотеку SPI в вашем коде. Мы также используем библиотеку TFT для записи и рисования на дисплее.

#include <TFT.h>
#include <SPI.h>

Затем вам нужно определить выводы CS, A0 (или DC) и RST:

#define cs 10
#define dc 9
#define rst 8

Создайте экземпляр библиотеки с именем TFTscreen:

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

Наконец, в функции setup() вам нужно инициализировать библиотеку:

TFTscreen.begin();

Вывод текста

Для вывода текста на дисплей вы можете настроить цвет фона экрана, размер и цвет шрифта.

Чтобы установить цвет фона, используйте:

TFTscreen.background(r, g, b);

Где r, g и b — это значения RGB для заданного цвета. Чтобы выбрать цвет шрифта:

TFTscreen.stroke(r, g, b);

Чтобы установить размер шрифта:

TFTscreen.setTextSize(2);

Вы можете увеличить или уменьшить число, переданное в качестве аргумента, чтобы увеличить или уменьшить размер шрифта.

Наконец, чтобы вывести текст на дисплей, используйте следующую строку:

TFTscreen.text("Hello, World!", x, y);

Где «Hello, World!» — это текст, который вы хотите отобразить, а координата (x, y) — это позиция, с которой вы хотите начать вывод текста на экране.

Код

Следующий пример выводит «Hello, World!» в середине экрана и меняет цвет шрифта каждые 200 миллисекунд.

Скопируйте следующий код в Arduino IDE и загрузите его на плату Arduino.

/*
 * Rui Santos
 * Complete Project Details https://randomnerdtutorials.com
 */

// include TFT and SPI libraries
#include <TFT.h>
#include <SPI.h>

// pin definition for Arduino UNO
#define cs   10
#define dc   9
#define rst  8

// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);

void setup() {

  //initialize the library
  TFTscreen.begin();

  // clear the screen with a black background
  TFTscreen.background(0, 0, 0);
  //set the text size
  TFTscreen.setTextSize(2);
}

void loop() {

  //generate a random color
  int redRandom = random(0, 255);
  int greenRandom = random (0, 255);
  int blueRandom = random (0, 255);

  // set a random font color
  TFTscreen.stroke(redRandom, greenRandom, blueRandom);

  // print Hello, World! in the middle of the screen
  TFTscreen.text("Hello, World!", 6, 57);

  // wait 200 miliseconds until change to next color
  delay(200);
}

Посмотреть исходный код

Вот ваш текст «Hello, World!» на дисплее 1.8 TFT.

Hello World на дисплее 1.8 TFT

Отображение фигур

Библиотека TFT предоставляет полезные функции для рисования фигур на дисплее:

  • TFTscreen. point(x, y) — отображает точку по координатам (x, y)

  • TFTscreen. line(xStart, yStart, xEnd, yEnd) — рисует линию, которая начинается в точке (xStart, yStart) и заканчивается в точке (xEnd, yEnd)

  • TFTscreen. rect(xStart, yStart, width, height) — рисует прямоугольник с верхним левым углом в точке (xStart, yStart) с заданной шириной и высотой

  • TFTscreen. .circle(x, y, radius) — рисует круг с центром в точке (x, y) с указанным радиусом

Код

Следующий пример отображает несколько фигур. Каждый раз, когда код проходит через цикл, фигуры меняют цвет.

Скопируйте следующий код в Arduino IDE и загрузите его на плату Arduino.

/*
 * Rui Santos
 * Complete Project Details https://randomnerdtutorials.com
 */

// include TFT and SPI libraries
#include <TFT.h>
#include <SPI.h>

// pin definition for Arduino UNO
#define cs   10
#define dc   9
#define rst  8

// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);

void setup() {

  //initialize the library
  TFTscreen.begin();

  // clear the screen with a black background
  TFTscreen.background(0, 0, 0);
}

void loop() {

  //generate a random color
  int redRandom = random(0, 255);
  int greenRandom = random (0, 255);
  int blueRandom = random (0, 255);

  // set the color for the figures
  TFTscreen.stroke(redRandom, greenRandom, blueRandom);

  // light up a single point
  TFTscreen.point(80,64);
  // wait 200 miliseconds until change to next figure
  delay(500);

  // draw a line
  TFTscreen.line(0,64,160,64);
  delay(500);

  //draw a square
  TFTscreen.rect(50,34,60,60);
  delay(500);

  //draw a circle
  TFTscreen.circle(80,64,30);
  delay(500);

  //erase all figures
  TFTscreen.background(0,0,0);
}

Посмотреть исходный код

Вот фигуры на дисплее:

Рисование фигур на дисплее 1.8 TFT

Отображение изображений

Дисплей 1.8 TFT может загружать изображения с SD-карты. Для чтения с SD-карты используется библиотека SD, уже включённая в программное обеспечение Arduino IDE. Выполните следующие шаги, чтобы отобразить изображение на дисплее:

1) Припаяйте штыревые разъёмы для SD-карты. На стороне, противоположной выводам дисплея, расположены четыре контакта, как показано на рисунке ниже.

Выводы SD-карты на дисплее 1.8 TFT

2) Дисплей может загружать изображения больше или меньше размера дисплея (160 x 128 пикселей), но для лучших результатов измените размер вашего изображения до 160 x 128 пикселей.

3) Изображение должно быть в формате .bmp. Для этого вы можете использовать программу для редактирования фотографий и сохранить изображение в формате .bmp.

4) Скопируйте изображение на SD-карту и вставьте её в слот для SD-карты на задней стороне дисплея.

5) Подключите выводы SD-карты к Arduino, следуя таблице ниже:

SD-карта на TFT дисплее

Подключение к Arduino Uno

CS

4

MOSI

11

MISO

12

SCK

13

И дисплей, и SD-карта работают по SPI-интерфейсу, поэтому на Arduino у вас будут выводы с двумя подключениями.

6) В Arduino IDE перейдите в File > Examples > TFT > Arduino > TFTBitmaLogo.

7) Отредактируйте код так, чтобы он искал ваше изображение. Замените «arduino.bmp» на имя вашего изображения:

// now that the SD card can be access, try to load the image file
logo = TFTscreen.loadImage("arduino.bmp");

8) Загрузите код на Arduino.

Примечание: некоторые пользователи сталкиваются с проблемами при использовании этого дисплея при попытке чтения с SD-карты. Мы не знаем, почему это происходит. На самом деле, мы тестировали несколько раз, и всё работало хорошо, а затем, когда мы собирались записать видео, чтобы показать вам конечный результат, дисплей перестал распознавать SD-карту — мы не уверены, является ли это проблемой держателя SD-карты, который не обеспечивает надёжного контакта с SD-картой. Тем не менее, мы уверены, что эти инструкции работают, потому что мы их протестировали.

Заключение

В этом руководстве мы показали вам, как использовать дисплей 1.8 TFT с Arduino: выводить текст, рисовать фигуры и отображать изображения. Вы можете легко добавить красивый визуальный интерфейс в свои проекты, используя этот дисплей.

У вас есть проекты с дисплеем 1.8 TFT? Расскажите нам в комментариях ниже.

Если вам понравился этот пост, вам также могут быть полезны:

Спасибо за чтение.