Данный дисплей представляет из себя ЖК монитор с диагональю 3,5 дюйма. Основная задача дисплея - работа с простой графикой (рисование фигур, текста, линий), однако, также предусмотрен вывод на дисплей полноцветных фотографий и анимации. Данный дисплей выполнен в форм-факторе шилда для контроллеров линеек UNO, Mega, Leonardo, Due, что представляет дополнительное удобство в подключении.
На плате также расположен разъём для размещения SD-карт памяти, таким образом данный дисплей совмещает в себе три устройства - экран, шилд и модуль карт памяти.
Пример: В примере иллюстрируются основные возможности по выводу информации на дисплей с использованием контроллера Smart UNO. Дисплей подключается к контроллеру в качестве шилда.
Для этого нам понадобится:
Что нужно: | Кол-во, шт |
---|---|
Контроллер | 1 |
Дисплей | 1 |
Пример кода:
#include <Adafruit_GFX.h> // Ядро графической библиотеки
#include <Adafruit_TFTLCD.h> // Специфика аппаратного обеспечения
#include <MCUFRIEND_kbv.h> // Специфика работы с разными чипами
// Ассоциируем шестнадцатеричные значения цветов в удобочитаемый вид
#define BLACK 0x0000 // черный
#define BLUE 0x001F // синий
#define RED 0xF800 // красный
#define GREEN 0x07E0 // зелёный
#define CYAN 0x07FF // голубой
#define MAGENTA 0xF81F // малиновый
#define YELLOW 0xFFE0 // жёлтый
#define WHITE 0xFFFF // белый
MCUFRIEND_kbv tft; //инициализация объекта дисплея
void setup(void) {
tft.reset(); //сброс дисплея
uint16_t identifier = tft.readID(); //чтение идентификатора чипа
tft.begin(identifier); //инициализация дисплея
tft.invertDisplay(true); //установка чёрной подсветки
}
void loop(void) {
for(uint8_t rotation=0; rotation<4; rotation++) { //попеременно установка поворота дисплея
tft.setRotation(rotation); //установить поворот
//Заливка дисплея цветами
tft.fillScreen(BLACK); //черным
tft.fillScreen(RED); //красным
tft.fillScreen(GREEN); //зелёным
tft.fillScreen(BLUE); //синим
tft.fillScreen(BLACK); //снова черным
//Написание текста
tft.setCursor(0, 0); //установить курсор в позицию 0,0 (левый верхний угол)
tft.setTextColor(WHITE); //установка цвета текста (белый)
tft.setTextSize(1); //установка размера текста
tft.println("Hello World!"); //вывести надпись
//Вывод числовых значений
tft.setTextColor(YELLOW); //установить цвет текста
tft.setTextSize(2); //установить размер текста
tft.println(1234.56); //вывести число
//Вывод шестнадцатеричного значения
tft.setTextColor(RED); //цвет текста (красный)
tft.setTextSize(3); //размер текста
tft.println(0x9876BEEF, HEX); //вывод значения
tft.println(); //вывод пустой строки
//Надписи разным шрифтом
tft.setTextColor(GREEN); //установка цвета текста
tft.setTextSize(5); //размер текста
tft.println("Display"); //надпись
tft.setTextSize(3); //размер текста
tft.println("SmartElements"); //надпись
tft.setTextColor(BLUE); //цвет текста
tft.setTextSize(3); //размер текста
tft.println("Visit our"); //надпись
tft.setTextColor(BLUE); //цвет текста
tft.setTextSize(2); //размер текста
tft.println("ofificial store:"); //надпись
tft.setTextColor(CYAN); //цвет текста
tft.setTextSize(2); //размер текста
tft.println("smartelements.ru"); //надпись
delay(5000); //задержка 5 секунд
//Начертить линию
tft.fillScreen(BLACK); //дисплей залить черным
// х1 у1 х2 у2 цвет
tft.drawLine(0, 0, 0, 100, GREEN); //нарисовать линию от точки 1 и точки 2, цвет
tft.drawLine(0, 100, 100, 100, RED); //нарисовать линию от точки 1 и точки 2, цвет
tft.drawLine(100, 100, 100, 0, BLUE); //нарисовать линию от точки 1 и точки 2, цвет
tft.drawLine(100, 0, 0, 0, MAGENTA); //нарисовать линию от точки 1 и точки 2, цвет
delay(5000); //задержка 5 секунд
//Быстрые линии (на всю длину или высоту)
tft.fillScreen(BLACK); //дисплей залить черным
//5 горизонтальных линий
int w = tft.width();
tft.drawFastHLine(0, 0, w, GREEN);
tft.drawFastHLine(0, 5, w, GREEN);
tft.drawFastHLine(0, 10, w, GREEN);
tft.drawFastHLine(0, 15, w, GREEN);
tft.drawFastHLine(0, 20, w, GREEN);
//5 вертикальных линий
int h = tft.height();
tft.drawFastVLine(0, 0, h, RED);
tft.drawFastVLine(5, 0, h, RED);
tft.drawFastVLine(10, 0, h, RED);
tft.drawFastVLine(15, 0, h, RED);
tft.drawFastVLine(20, 0, h, RED);
delay(5000); //задержка 5 секунд
//Рисование квадрата
tft.fillScreen(BLACK); //дисплей залить черным
tft.drawRect(0, 0, 100, 100, YELLOW); //пустой квадрат из точки (0, 0) со сторонами 100 пикселей
tft.fillRect(0, 120, 100, 200, CYAN); //заполненный прямоугольник из точки (0, 120) со сторонами по Х - 100, по У - 200
delay(5000); //задержка 5 секунд
//Рисование кругов
tft.fillScreen(BLACK); //дисплей залить черным
tft.fillCircle(100, 100, 50, BLUE); //залитый круг радиусом 50 пикселей из точки (100, 100)
tft.drawCircle(100, 100, 100, WHITE); //пустой круг радиусом 100 пикселей из точки (100, 100)
delay(5000); //задержка 5 секунд
//Рисование треугольников
tft.fillScreen(BLACK); //дисплей залить черным
tft.fillTriangle( //нарисовать заполненный треугольник
100 , 0, // верхняя точка
50, 100, // нижняя левая
150, 100, // нижняя правая
tft.color565(65, 122, 23)); //залить цветом по схеме RGB
tft.drawTriangle(
100, 0, // верхняя точка
0, 100, // нижняя левая
200, 100, // нижняя правая
tft.color565(0, 0, 255)); //залить цветом по схеме RGB
delay(5000); //задержка 5 секунд
}
}