В данный момент легко купить SPI дисплей для arduino, ESP32 и т.п.
LCD экраны с разрешением 320x240 пикселей как правило управляются драйвером ILI9341, а если разрешение 480x320 то драйвером ILI9486.
Подключение дисплея
ESP 32 | LCD |
---|---|
3.3v | VCC, LED |
GND | GND |
D15 | CS |
D2 | DC/RS |
D4 | RESET |
D18 | SCK |
D23 | SDI (MOSI) |
pin SDO (MISO) - подключать не нужно!
Схема подключения touch
ESP 32 | Touch |
---|---|
D18 | T_CLK |
D19 | T_DO |
D21 | T_CS |
D23 | T_DIN |
Установка и настройка библиотеки TFT_eSPI
Для загрузки библиотеки TFT_eSPI нужно открыть Arduino IDE, перейти в Инструменты -> Управлять библиотеками...
.
Введите в строку фильтрации TFT_eSPI
, найдите эту библиотеку в отфильтрованном списке и установите.
Теперь нужно настроить TFT_eSPI для своего дисплея. Для этого нужно перейти в папку куда была установлена библиотека, отредактировать файл User_Setup.h
, где нужно оставить в не закомментированном виде только те строки которые относятся к вашему дисплею.
Как перейти в папку куда была установлена TFT_eSPI
Откройте настройки Arduino IDE, скопируйте путь из поля вводаРазмещение папки скетчей
.
Вставьте путь в проводнике, перейдите в папку libraries
-> TFT_eSPI
.
В моем случае, раскомментированны следующие строки:
// #define ILI9341_DRIVER
#define ILI9486_DRIVER
#define TFT_HEIGHT 320 // ST7789 240 x 320
#define TFT_INVERSION_OFF
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 4 // Reset pin (could connect to RST pin)
#define TOUCH_CS 21 // Chip select pin (T_CS) of touch screen
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
#define SPI_FREQUENCY 27000000
#define SPI_READ_FREQUENCY 20000000
#define SPI_TOUCH_FREQUENCY 2500000
Краткая информация по использованию
Цвета
TFT_BLACK
TFT_BROWN
TFT_RED
TFT_ORANGE
TFT_YELLOW
TFT_GREEN
TFT_BLUE
TFT_PURPLE
TFT_DARKGREY
TFT_WHITE
TFT_CYAN
TFT_MAGENTA
TFT_MAROON
TFT_DARKGREEN
TFT_NAVY
TFT_PINK
Если цвета на вашем дисплеи получаются инвертированными (например: черный цвет отображается как белый), то расскоментируйте #define TFT_INVERSION_OFF и закоментируйте #define TFT_INVERSION_ON или наоборот в файле
User_Setup.h
Вывод текста
drawString(Текст, x, y);
tft.drawString("Hello Blog", 10, 10);
Рисование точки
drawPixel(x, y, цвет);
tft.drawPixel(10, 10, TFT_RED);
Рисование линии
drawLine(x1, y1, x2, y2, цвет);
tft.drawLine(10, 10, 100, 100, TFT_RED);
Рисование круга
drawCircle(x, y, радиус, цвет); - только границы
fillCircle(x, y, радиус, цвет); - заполненный круг
tft.drawCircle(100, 100, 40, TFT_BLUE);
Рисование прямоугольника
drawRect(x1, y1, ширина, высота, цвет); - только границы
fillRect(x1, y1, ширина, высота, цвет); - заполненный прямоугольник
tft.drawRect(10, 10, 100, 45, TFT_MAGENTA);
Рисование треугольника
drawTriangle(x1, y1, x2, y2, x3, y3, цвет); - только границы
fillTriangle(x1, y1, x2, y2, x3, y3, цвет); - заполненный треугольник
tft.drawTriangle(10, 160, 90, 10, 170, 160, TFT_PINK);
Рисование изображения
Рассмотрим пример, где у нас есть готовый файл и изображением.
Нужно конвертировать изображение в XBM формат, можно воспользоваться онлайн конвертерами.
Теперь нужно открыть XBM файл спомощю текстового редактора, скопировать содержимое в свой скетч.
drawXBitmap(x, y, данные изображения, ширина изображения, высота изображения, цвет изображения, цвет фона);
#include <SPI.h>
#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();
#define icon_width 240
#define icon_height 101
static uint8_t icon_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7,
0x6F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xE6, 0xF6, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F,
0xBF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xC0, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x5F, 0x7A, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
0x0F, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xEF,
0xFB, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0x7E, 0xDE, 0x77, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
0x0F, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE7,
0x7F, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0xE0, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF7, 0xEF, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF,
0x03, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA,
0xDD, 0x7B, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0x00, 0xE0, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x00, 0xFC, 0xBB, 0x7B, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x58,
0xFF, 0xEE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x05, 0x70, 0xEE, 0xFF, 0x77, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0xE0,
0x7B, 0x77, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0xD8, 0x1F, 0xC0, 0xDF, 0xEF, 0xEF, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x39, 0x80,
0xF9, 0xF6, 0x7B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x6E, 0x27, 0x80, 0xB9, 0xFF, 0xFA, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
0x80, 0xED, 0xDF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x44, 0x08,
0x00, 0x00, 0x80, 0xEF, 0xF6, 0x01, 0x00, 0x7F, 0x7F, 0x0B, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x24, 0x29,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xC0, 0x7F, 0xFF, 0x03,
0x00, 0xF6, 0xE9, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
0xBF, 0xA2, 0x28, 0x01, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
0x00, 0x00, 0xA0, 0xF7, 0xFF, 0x01, 0x00, 0xE6, 0xFD, 0x77, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF,
0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0xBE, 0x6D, 0x07,
0x00, 0x7C, 0xDF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
0x00, 0x00, 0xF8, 0xFF, 0xF7, 0x05, 0x00, 0xFC, 0xBB, 0xEE, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF,
0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xB8, 0x6B, 0xDE, 0x03,
0x00, 0xBC, 0xED, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
0x00, 0x00, 0x9C, 0xFE, 0x7F, 0x06, 0x00, 0xE8, 0xFB, 0x7F, 0x03, 0x00,
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF,
0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xDB, 0xDB, 0x07,
0x00, 0xBC, 0xBF, 0xE6, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F,
0x00, 0x80, 0xED, 0xFF, 0xDD, 0x06, 0x00, 0xBC, 0x77, 0xFD, 0x1F, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF,
0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x80, 0xFF, 0x5A, 0xFF, 0x07,
0x00, 0xF8, 0xEE, 0xDF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0xFE, 0xFF, 0x0F, 0xB8, 0xFF, 0xFF, 0xED, 0x1A,
0x00, 0xC0, 0x7F, 0xFF, 0xF6, 0x07, 0x00, 0xB8, 0xFF, 0x97, 0x79, 0x00,
0x00, 0x00, 0x00, 0xF8, 0xFF, 0x7F, 0xFF, 0xFF, 0x5F, 0x02, 0xF8, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xF0, 0xD6, 0xBD, 0x6F, 0x1D,
0x00, 0xE0, 0x77, 0xFD, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x07,
0xF0, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0x00, 0xF0, 0xEE, 0xFF, 0xF7, 0x1B, 0x00, 0xC0, 0xEF, 0xFB, 0xFD, 0x01,
0x00, 0x00, 0x00, 0xFC, 0xFF, 0x03, 0xC0, 0xFF, 0x07, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x9C, 0x7F, 0x99, 0xFF, 0x7E,
0x00, 0x80, 0xFA, 0xBF, 0xBF, 0x01, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00,
0x80, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0x00, 0xDA, 0xFF, 0xBD, 0xFE, 0xFF, 0x00, 0x80, 0xFF, 0x97, 0x5A, 0x07,
0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xEE, 0xFF, 0x67, 0x77,
0x60, 0x00, 0xEC, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
0x00, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0x00, 0x77, 0x7F, 0x7B, 0xDD, 0x7E, 0xC0, 0x01, 0xEE, 0xDB, 0xBB, 0x0D,
0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xC0, 0xFF, 0xE5, 0xEF, 0xF7, 0x6F,
0xC0, 0x01, 0x7C, 0x7F, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xA0, 0xFE, 0xFF, 0xFE, 0x7F, 0x77, 0x60, 0x05, 0xF0, 0xDF, 0xFF, 0x3F,
0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xE0, 0x7B, 0xBB, 0x77, 0xDE, 0x7D,
0xC0, 0x07, 0x20, 0xFC, 0x6B, 0xE6, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00,
0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0xB8, 0x6B, 0xFF, 0xEF, 0xFB, 0x7F, 0xC0, 0x1D, 0x00, 0x68, 0x77, 0xDE,
0x01, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xF8, 0xFE, 0xB9, 0xFA, 0x9F, 0x6B,
0x40, 0x1F, 0x00, 0xF0, 0xFE, 0x7F, 0x01, 0x00, 0x00, 0xFE, 0x7F, 0x00,
0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0x6E, 0xFF, 0x9B, 0xFF, 0xBF, 0x79, 0xC0, 0x5A, 0x00, 0xC0, 0xFF, 0xFF,
0x03, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xFC, 0xB7, 0xFF, 0xED, 0xF6, 0x7F,
0xC0, 0x7F, 0x00, 0x80, 0x77, 0xED, 0x07, 0x00, 0x00, 0xFE, 0xFF, 0x00,
0x80, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xFF, 0xEE, 0xFD, 0x77, 0x6F, 0x7F, 0xC0, 0x76, 0x00, 0x80, 0xDD, 0xFF,
0x07, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xC0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xD6, 0xFF, 0xA7, 0xFE, 0xFF, 0xE9,
0xC0, 0xFF, 0x00, 0x80, 0x7F, 0x69, 0x0E, 0x00, 0x00, 0xFC, 0xFF, 0x01,
0xE0, 0xFF, 0x1F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0x9D, 0x7F, 0xFF, 0xEF, 0xFF, 0x3B, 0xC0, 0x7F, 0x00, 0x80, 0xFE, 0xFD,
0x0F, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0xF8, 0xFF, 0x0F, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0xDE, 0xDD, 0x7D, 0xB6, 0x7F,
0x40, 0x6D, 0x00, 0x80, 0xD7, 0xBF, 0x0F, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00,
0xDE, 0xD6, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0xF7, 0x00, 0x80, 0x6D, 0xBF,
0x06, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0xFC, 0x7F, 0x9D, 0xD5, 0x6B, 0x7B,
0x80, 0x5E, 0x00, 0x80, 0xFF, 0xE9, 0x07, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
0xFF, 0xFF, 0x07, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00,
0xAE, 0xFF, 0xDB, 0x9F, 0xFE, 0x69, 0xC0, 0xFF, 0x00, 0xC0, 0xFF, 0xBB,
0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0xF8, 0xED, 0xFD, 0xFB, 0xDB, 0xFF,
0xC0, 0x5D, 0x01, 0xC0, 0xF6, 0xFF, 0x03, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0x01, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0xF0, 0xFF, 0xED, 0xF6, 0x7F, 0x3B, 0xC0, 0xED, 0x01, 0xE0, 0x77, 0xDF,
0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xB0, 0x69, 0xFF, 0xBF, 0xE9, 0x7F,
0xC0, 0xFF, 0x07, 0x70, 0xFE, 0xFD, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
0xFF, 0x7F, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00,
0xC0, 0xFD, 0xF6, 0x9F, 0xFD, 0x6F, 0xC0, 0xFA, 0x1F, 0xFC, 0xEF, 0x77,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xBF, 0xEF, 0xFB, 0xDF, 0xF6,
0x40, 0xEF, 0xF9, 0xDF, 0x7B, 0x1D, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,
0xFF, 0x0F, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0x7F, 0x00, 0x00,
0x80, 0xBF, 0x77, 0xDD, 0xBF, 0x6F, 0xC0, 0x77, 0xFB, 0xFF, 0xFF, 0x1D,
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xE9, 0xFF, 0x77, 0xE9, 0x7F,
0xC0, 0xFF, 0x5F, 0x9D, 0xD5, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x41,
0x05, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0x00, 0xBC, 0xEE, 0xDF, 0xBB, 0x7F, 0x60, 0xEE, 0xF7, 0xDB, 0x9F, 0x03,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0x7B, 0xFD, 0xFF, 0x66,
0xC0, 0x7B, 0xBE, 0xFD, 0xFB, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0x03, 0x38,
0x00, 0xB8, 0xE7, 0xFF, 0x7B, 0x76, 0xC0, 0xDE, 0xBB, 0xFD, 0xEE, 0x00,
0x00, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
0x0F, 0x00, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0xE0, 0x7E, 0xBD, 0xEF, 0x3F,
0x80, 0xF7, 0xFF, 0x97, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x04,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0xFF, 0x3F,
0x00, 0xC0, 0xFF, 0xE9, 0xFE, 0x1F, 0x00, 0x7F, 0x6F, 0xDD, 0x7F, 0x00,
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0xE0, 0xFF,
0x1F, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x80, 0xEF, 0xBF, 0x7B, 0x0E,
0x00, 0xEE, 0xF6, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0x3F, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x7F,
0x00, 0x80, 0xFB, 0xBD, 0xEF, 0x07, 0x00, 0xFE, 0xEF, 0xFD, 0x17, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF,
0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x6E, 0xFF, 0xFA, 0x07,
0x00, 0x58, 0xFF, 0xDF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0xFC, 0x6A, 0xFF, 0x03, 0x00, 0xFC, 0x77, 0xA7, 0x07, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF,
0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xB8, 0xFF, 0x6D, 0x07,
0x00, 0xBC, 0xDE, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0xF0, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0xF8, 0xED, 0xFF, 0x03, 0x00, 0xFC, 0xFD, 0x77, 0x01, 0x00,
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xE0, 0xFF, 0xD9, 0x05,
0x00, 0x9C, 0xDF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0xFF, 0x07,
0x00, 0x00, 0xA0, 0x7F, 0x9D, 0x07, 0x00, 0xBC, 0x97, 0x7E, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF,
0xFF, 0x03, 0x00, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x80, 0xD6, 0xFF, 0x07,
0x00, 0xFC, 0xFD, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0x81, 0x08, 0x28, 0x00, 0x00, 0x40, 0x01, 0x00,
0x00, 0x00, 0x80, 0xDF, 0xDD, 0x07, 0x00, 0xBE, 0xFB, 0x0B, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xF7, 0x1E,
0x00, 0xE7, 0xBF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7E, 0x6F, 0x1F, 0xC0, 0xFE, 0x97, 0x0E, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xFE, 0xFD,
0xA1, 0x77, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x40,
0xF7, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF8, 0xFB, 0xBB, 0xFF, 0xED, 0x77, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x9F, 0xFE,
0x9B, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00,
0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xE0, 0xBF, 0x7F, 0xB9, 0xF6, 0x7E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF7, 0xEB,
0xFF, 0xEF, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x00,
0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xDE, 0xB7, 0xBB, 0x77, 0x2D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xFE,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x00,
0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xD6, 0xFF, 0xE5, 0xEE, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x6F,
0xBF, 0x7B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00,
0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFE, 0xEE, 0xBF, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xEE, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x6F,
0xFF, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xF7, 0x7F, 0x6E, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xDD,
0xDE, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xD6, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA,
0x7F, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8,
0xED, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF,
0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0,
0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF,
0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
void setup() {
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.drawXBitmap(0, 60, icon_bits, icon_width, icon_height, TFT_WHITE, TFT_BLACK);
}
void loop() {}