Позвонить 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 = "FontsName";
String fontType = ".ttf";

Также задаём размер: int fontSize = 10; и int displayFontSize = 10;. После запуска появится окно с демонстрацией символов выбранного шрифта.

Сконвертированный шрифт сохранится в папке:

C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\Tools\Create_Smooth_Font\Create_font\FontFiles

Далее копируем его в папку библиотеки TFT_eSPI:

C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\Fonts\Custom

Использование кастомного шрифта

Для подключения шрифта в проект Arduino добавляем:

#include <Fonts/Custom/Dig1818.h>

А при выводе данных используем:

tft.loadFont(Dig1818);

Если нужны шрифты разных размеров — конвертируйте несколько вариантов, указывая для каждого свой размер.

Надеюсь эта статья будет полезной для Вас при использовании дисплея ST7735S в ваших проектах.

С этим покупают:

  • Дисплей 1.8" TFT LCD ST7735 128×160 SPI + SD-карта

    Дисплей 1.8" TFT LCD SPI интерфейс 128х160 / SD-Card
    180 грн
    ПОДРОБНЕЙ
  • OLED дисплей 0.96" 128×64 для Arduino esp32 stm32

    OLED дисплей 0.96" 128×64 для Arduino esp32 stm32
    120 грн
    ПОДРОБНЕЙ
  • ESP32 CH340C Type-C 30Pin (4MB) — плата разработки Wi-Fi + Bluetooth

    ESP32 CH340C Type-C 30Pin
    235 грн
    ПОДРОБНЕЙ

Комментарии к статье

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

Добавить комментарий