3.5" TFT дисплеї з SPI інтерфейсом — популярне рішення для проєктів на ESP32, особливо в корпусних пристроях, сенсорних панелях та DIY-інтерфейсах. 3.5" TFT LCD дисплеї з роздільною здатністю 320×480 та SPI інтерфейсом широко продаються під маркуванням ST7796S SPI module. Однак на практиці часто з'ясовується, що реальний контролер всередині може відрізнятися від заявленого.
Важливий нюанс:
- навіть якщо на платі написано ST7796S, реальний контролер може відрізнятися.
У нашому випадку дисплей "з коробки" не запрацював, як очікувалося, хоча SPI та ініціалізація проходили без помилок.
- Наприкінці статті — готовий робочий код
За підсумками статті ви отримаєте:
- Повністю робочий 3.5" TFT дисплей на ESP32-S3
- Готовий робочий код для Arduino IDE (наприкінці статті)
- Перевірену конфігурацію TFT_eSPI
Компоненти
- ESP32-S3 WROOM 30 pin
- TFT LCD 3.5" 320×480 SPI
- Дроти Dupont / паяння
- Живлення 3.3V (при тесті запитувалося від пінів esp32)
Тестуємо
Для підключення дисплея до esp32 s3 wroom будемо використовувати стандартну бібліотеку TFT_eSPI. Для підключення дисплея потрібно налаштувати конфігураційний файл у папці бібліотеки User_Setup.h, який знаходиться за адресою: C:\Users\_Name_\Documents\Arduino\libraries\TFT_eSPI\User_Setup.h
#define USER_SETUP_LOADED 1
#define ILI9488_DRIVER
#define TFT_WIDTH 320
#define TFT_HEIGHT 480
// SPI (мінімальний набір)
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 15
#define TFT_DC 16
#define TFT_RST -1
#define TFT_MISO -1
#define SPI_FREQUENCY 10000000
#define SPI_READ_FREQUENCY 10000000
// шрифти вимкнено для тесту
#undef LOAD_GLCD
#undef LOAD_FONT2
#undef LOAD_FONT4
#undef LOAD_FONT6
#undef LOAD_FONT7
#undef LOAD_FONT8
#undef LOAD_GFXFF
#undef SMOOTH_FONT
Важливо:
У процесі тестування з'ясувалося, що реальний контролер дисплея не відповідає маркуванню. Зверніть увагу, що дисплей запрацював після того, як у налаштуваннях вказали #define ILI9488_DRIVER замість логічного #define ST7796_DRIVER
Відповідність пінів: дисплей | esp32s3 wroom
MOSI → GPIO 23
SCLK → GPIO 18
CS → GPIO 5
DC → GPIO 2
RST → не використовується (або -1)
BL → 3.3V
Після підключення обов'язково перевірте живлення підсвітки (BL) — вона має бути підключена до +3,3V.
Код і логіка роботи
Дисплей працює через бібліотеку TFT_eSPI. Логіка проста:
- ініціалізація SPI дисплея
- перевірка підключення
- циклічне заливання екрану кольорами
- виведення статусу в Serial Monitor
Повний робочий скетч знаходиться в кінці статті.
Налаштування та перевірка
Після прошивки перевіряємо:
- чи з'являється заливання на екрані
- чи змінюються кольори
- чи є лог у Serial Monitor
Якщо екран залишається білим:
- перевірте живлення BL
- знизьте SPI частоту до 8–20 MHz
- перевірте драйвер дисплея
Можливі проблеми
Білий екран
найчастіше неправильний драйвер або немає підсвітки BL
Ініціалізація проходить, але немає зображення
дисплей не ST7796S, а інший контролер
Артефакти / мерехтіння
занадто висока SPI частота
Підсумок
- 3.5" SPI TFT дисплеї — чудове рішення для ESP32 проєктів, але важливо враховувати:
- маркування ST7796S не завжди відповідає реальному контролеру
- часто потрібне підбирання драйвера (у нашому випадку ILI9488)
- правильне налаштування TFT_eSPI вирішує 90% проблем
Головне правило:
Якщо дисплей "живий, але білий" — це майже завжди не код, а драйвер або підсвітка



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