Позвонить Telegram Viber
График работы: пн–пт 9:00–18:00

Дисплей 1.8″ ST7735S для Arduino, ESP, STM — підключення та шрифт

Riznevdim

Дисплей 1.8″ ST7735S для Arduino, ESP, STM — підключення та шрифт

Дисплей 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 у ваших проєктах.

З цим купують:

Коментарі до статті

Юра29.04.2026
А куда ложить шрифт который хочу конверторовать в понятный для ардуино?
Модератор- 29.04.2026
C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\Tools\Create_Smooth_Font\Create_font\data
формат ttf

Додати коментар