Дисплей 1.8″ з роздільною здатністю 128×160 точок на контролері ST7735S — популярне рішення для проєктів на Arduino, ESP32 та STM32. Він оснащений слотом для SD‑карти, підтримує кольорову палітру до 262 144 кольорів і працює через інтерфейс SPI, що робить його зручним для підключення до мікроконтролерів.
Характеристики дисплея
- Роздільна здатність: 128×160 точок
- Кольорова палітра: до 262 144 кольорів (18‑біт)
- Інтерфейс: SPI (Serial Peripheral Interface)
- Живлення: 3.3 В
- Контролер: ST7735S
- Слот для SD‑карти
Підключення до ESP32 S3 Zero
У прикладі використовується мікроконтролер ESP32 S3 Zero. Для роботи з дисплеєм застосовується бібліотека TFT_eSPI, яку можна встановити через диспетчер бібліотек Arduino IDE. Після встановлення необхідно вказати піни підключення дисплея у файлі User_Setup.h за шляхом: C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI.
#define ST7735_DRIVER // Драйвер ST7735 (контролер дисплея)
#define TFT_WIDTH 128 // Ширина екрана у пікселях
#define TFT_HEIGHT 160 // Висота екрана у пікселях
#define USE_HSPI_PORT // Використовуємо HSPI-порт ESP32
#define TFT_MOSI 4 // MOSI — передача даних на дисплей (SDA)
#define TFT_SCLK 5 // SCLK — тактовий сигнал SPI (SCK)
#define TFT_CS 3 // CS — вибір пристрою (Chip Select)
#define TFT_DC 6 // DC — перемикання між даними та командами (A0)
#define TFT_RST 2 // RST — скидання дисплея (RESET)
#define TFT_BL -1 // Підсвітка (Backlight). -1 — окремий пін не використовується
#define SPI_FREQUENCY 20000000 // Частота SPI: 20 МГц — оптимальний баланс
Практичні нюанси підключення
- RST пін обов’язковий для коректної роботи (без нього зображення не виводилось).
- Підсвітка має окремий вивід — можна живити напряму від 3.3 В (я реалізував керування через транзистор).
- До ініціалізації дисплей може показувати «рябь» — це нормальна поведінка.
- Реалізовано включення підсвітки через транзистор 2SC9015 після ініціалізації мікроконтролера.
Окремий пін LED для включення підсвітки — чудове рішення, але керування підсвіткою потрібно реалізовувати виключно через транзистор, а не напряму з піна мікроконтролера. Це дозволяє приховати рябь, яку дисплей показує між подачею живлення та ініціалізацією. Слот для SD‑карти у прикладі не використовувався, але він дає можливість виводити фонові зображення.
Робота зі шрифтами
Шрифти за замовчуванням у бібліотеці TFT_eSPI не завжди зручні для виводу тексту. Тому можна використовувати сторонні шрифти, попередньо конвертувавши їх у формат, зрозумілий дисплею.
Створення LCD‑шрифту для TFT_eSPI
Для створення власного шрифту використовується скрипт Create_font, який знаходиться у папці:
C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\Tools\Create_Smooth_Font\Create_font
Для запуску скрипту необхідно встановити Processing (середовище візуального програмування). У Processing відкриваємо Create_font з бібліотеки TFT_eSPI і вказуємо ім’я .ttf шрифту:
String fontName = "LCD";
String fontType = ".ttf";
Також задаємо розмір: int fontSize = 10; та int displayFontSize = 10;. Після запуску з’явиться вікно з демонстрацією символів вибраного шрифту.
Сконвертований шрифт зберігається у папці:
C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\Tools\Create_Smooth_Font\Create_font\FontFiles
Далі копіюємо його у папку:
C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\Fonts\Custom
Використання кастомного шрифту
Для підключення шрифту у проєкт Arduino додаємо:
#include <Fonts/Custom/Dig1818.h>
А при виводі даних використовуємо:
tft.loadFont(Dig1818);
Якщо потрібні шрифти різних розмірів — конвертуйте кілька варіантів, вказуючи для кожного свій розмір.
Сподіваюся, ця стаття буде корисною для Вас при використанні дисплея ST7735S у ваших проєктах.





Коментарі до статті
Поки що немає коментарів. Будьте першим!
Додати коментар