Как да използвате TFT екрани със ST7789VI и Arduino: Пълно ръководство

  • Лесно свързване благодарение на SPI протокола, изискващ само четири контролни пина.
  • Използване на библиотеки Adafruit ST7789 и GFX за рисуване на разширена графика.
  • Възможност за зареждане на сложни изображения без необходимост от SD карта.

TFT екран със ST7789VI и Arduino

TFT екрани, управлявани от чип ST7789VI Те са отличен избор за Arduino и други проекти за микроконтролери. Тези малки, но с висока разделителна способност екрани ви позволяват да показвате графики, текст и изображения ясно и точно. Интегрирането му обаче може да бъде донякъде предизвикателство за тези, които не са запознати с протоколи като SPI или изисквания за мощност и контрол. В това ръководство ще се потопим във всички аспекти на свързване, използване на библиотеки и конфигуриране на тези екрани с вашия Arduino.

Освен това ще научите как да ги свързвате с различни платки като NodeMCU ESP8266 и класическия Arduino Nano. По този начин ще можете да се възползвате напълно от графичните и технически възможности на този тип дисплеи, независимо дали за проекти за интернет на нещата (IoT) или за друг тип приложение, без да зависи от SD карти или сложни схеми.

Какво е TFT дисплей с драйвер ST7789VI?

Екраните TFT (Тънкослоен транзистор) се характеризират с предлагане на качество на изображението, което е много по-добро от други видове екрани, като нормални LCD или по-малки OLED. Контролерът ST7789VI Това е мозъкът на тези екрани, отговорен за обработката на сигналите, изпратени до него от микроконтролер като Arduino или ESP8266, и преобразуването на тези сигнали в изображения, цветове и сложни графики.

Едно от големите предимства на тези дисплеи е, че те използват комуникационната шина SPI, което опростява връзката с повечето микроконтролери, използвайки само четири контролни пина (SDA, SCL, RES и DC). Това позволява окабеляването да бъде значително намалено и е идеално за компактни проекти.

Свързване на TFT екрана с чип ST7789VI

За да работите с тези екрани, важно е да знаете как да ги свържете правилно към вашия Arduino или ESP8266. В зависимост от микроконтролера, който използвате, щифтовете за захранване и свързване може леко да се променят. По-долу описваме най-важните връзки.

Връзка на TFT екран с Arduino Nano

Основни връзки:

  • VCC: Свързва се към захранващия сигнал, който обикновено е 3.3 V (не 5 V, за да избегнете повреда на екрана).
  • GND: Свързан е със заземяване.
  • SCL (понякога маркиран с CLK): Това е щифтът на серийния часовник и отива към D13 върху чиния Arduino Uno или Нано.
  • S.D.A. (означен също като MOSI): Това е щифтът, който изпраща данните и се свързва към D11.
  • ВЕИ: Свързва се с щифта, отговорен за нулиране на екрана; в този случай, при D8 на Arduino.
  • DC: Пинът за команда/данни, който се свързва към D9.

Относно плочите ESP8266, ще забележите, че те работят при 3.3 V, така че няма да е необходимо да се притеснявате за регулиране на нивата на напрежение, както е в случая с Arduino, където е необходимо да се използват делители на напрежение с резистори за защита на контролера на дисплея.

Използване на библиотеки в Arduino

След като направите всички връзки правилно, ще трябва да инсталирате някои библиотеки в Arduino IDE. За работа с тези екрани най-използваната опция е библиотеката Adafruit ST7789, който е силно съвместим с хардуера на тези дисплеи и можем да го използваме заедно с библиотеката Adafruit GFX за създаване на усъвършенствани графики.

За да инсталирате библиотеките, изпълнете следните стъпки:

  • Отидете на Скица -> Включване на библиотека -> Управление на библиотеки.
  • пиша ST7789 в лентата за търсене и изберете опцията Adafruit.
  • Направете същото за библиотеката Adafruit GFX.

С тези две вече инсталирани библиотеки ще сте готови да напишете първия си код и да покажете изображения, текст или графики, които искате.

Основен код за "Hello, World!" на TFT екран

Добра отправна точка за тестване на вашия екран е да покажете просто "Hello, World!" на екрана. По-долу ви показваме основен код, който можете да използвате за тази цел. Не забравяйте, че този код е предназначен за Arduino Uno или Nano, но ако използвате други платки, може да се наложи да адаптирате щифтовете.

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>

#define TFT_CS     10
#define TFT_RST    8
#define TFT_DC     9

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  tft.init(240, 240);
  tft.setRotation(1);
  tft.fillScreen(ST77XX_BLACK);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setCursor(50, 120);
  tft.println("Hello World!");
}

void loop() {
  // Nada que hacer en el loop
}

Пример за TFT екран с основен код

Този малък код инициализира екрана, завърта го хоризонтално и показва текста "Hello World" в центъра му. Можете да експериментирате с различни размери или цветове на текста, като използвате методите setTextColor, setTextSizeСред другите.

Графични възможности на дисплея ST7789VI

Графичните възможности на тези екрани са доста пълни. С библиотеката Adafruit GFX можете да рисувате линии, правоъгълници, кръгове и много повече само с няколко команди. По-долу изброяваме някои от най-използваните:

  • drawLine(x0, y0, x1, y1, цвят): Начертайте линия от точката (x0, y0) до (x1, y1).
  • fillRect(x, y, w, h, цвят): Чертае запълнен правоъгълник на екрана.
  • fillCircle(x, y, r, цвят): Начертайте плътна окръжност с радиус r от точката (x, y).

Тези основни методи ще ви позволят бързо да оживите екрана си, но библиотеката ви позволява също да импортирате изображения Bitmap, което е много полезно, ако искате да показвате сложни графики.

За да работите с изображения, ще трябва предварително да ги конвертирате във формат, който Arduino може да разбере, както обясняваме по-късно.

Импортирайте изображения на екрана, без да използвате SD карта

Обикновено зареждането на изображения на TFT екран изисква прикрепена SD карта, която съхранява изображението и позволява зареждане от него. Въпреки това, можем да избегнем тази стъпка, като конвертираме изображенията в растерни кодове и ги съхраняваме директно в паметта на микроконтролера.

Процесът е по-прост, отколкото изглежда. Просто трябва да използвате някакъв софтуер, за да конвертирате вашето изображение и след това да го вградите в заглавен файл. Тук ви показваме стъпките, които трябва да следвате:

  • Изберете изображение, за предпочитане 240x240 пиксела (размера на дисплея).
  • Използвайте програма като LCD конвертор на изображения за преобразуване на изображението в масив от стойности.
  • Запазете генерирания масив и копирайте данните в заглавния (.h) файл на вашия Arduino проект.

След това с помощта на функцията pushImage() от библиотеката Adafruit ST7789, можете да заредите този масив и да покажете въпросното изображение.

Не забравяйте, че този метод е идеален за малки и средни проекти, тъй като ограниченията на паметта на микроконтролера могат да работят срещу вас, ако се опитате да заредите много големи изображения наведнъж.

И накрая, работата с TFT екрани със ST7789VI във вашите Arduino или ESP8266 проекти отваря свят от графични възможности. С правилна конфигурация и правилните софтуерни инструменти можете да реализирате атрактивни и функционални интерфейси без твърде много неуспехи.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.