Підключення дисплея GC9A01 до ESP32-S3 — робоче налаштування TFT_eSPI та годинник по Wi-Fi
Використовуємо:
Arduino IDE та бібліотека TFT_eSPI
Круглі TFT дисплеї GC9A01 з роздільною здатністю 240×240 — популярне рішення для годинників, міні-панелей, погодних станцій та інтерфейсів на ESP32. Найчастіше такі дисплеї продаються як “1.28 IPS GC9A01 SPI display” і чудово підходять для проєктів з Wi-Fi та анімацією.
У моєму випадку спочатку планувалося підключення до ESP32-S2 Mini, оскільки в нього достатньо вільних GPIO. Однак із підключеним дисплеєм плата поводилася нестабільно — були проблеми з прошивкою та завантаженням.
Після переходу на ESP32-S3 WROOM все запрацювало нормально без додаткових маніпуляцій.
- Наприкінці статті — робоча конфігурація TFT_eSPI та готова логіка годинника по Wi-Fi.
Що вийшло в результаті
За підсумками налаштування ви отримаєте:
- повністю робочий дисплей GC9A01 на ESP32-S3
- коректну роботу через TFT_eSPI
- підключення до Wi-Fi
- автоматичну синхронізацію часу через інтернет
- перемикання між аналоговим та цифровим годинником
- готову базу для DIY годинника або smart display проєкту
- Налаштування TFT_eSPI для GC9A01
Для роботи знадобиться бібліотека TFT_eSPI. Після встановлення бібліотеки відкрийте файл та налаштуйте конфігураційний файл:
C:\Users\Name\Documents\Arduino\libraries\TFT_eSPI\User_Setup.h
У User_Setup.h вкажіть наступні параметри:
#define GC9A01_DRIVER
#define TFT_WIDTH 240
#define TFT_HEIGHT 240
#define TFT_CS 15 // Chip Select
#define TFT_DC 23 // Data/Command
#define TFT_RST 4 // Reset
#define TFT_MOSI 12 // SPI Data
#define TFT_SCLK 14 // SPI Clock
#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SPI_FREQUENCY 27000000
#define USER_SETUP_ID 931
Відповідність пінів: GC9A01 | ESP32-S3 (продубльовано на зображенні)
| Висновок дисплея | Підключення до ESP32‑S3 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SCL / CLK | GPIO 14 |
| SDA / DIN | GPIO 12 |
| DC | GPIO 23 |
| CS | GPIO 15 |
| RST | GPIO 4 |
| BL | 3.3V |
Підсвічування BL краще одразу підключити до 3.3V, інакше екран може залишатися повністю чорним навіть при успішній ініціалізації SPI.
Важливий нюанс із ESP32-S2
Під час тестування ESP32-S2 Mini працював нестабільно при підключеному дисплеї.
Симптоми були такі:
- плата не завжди прошивалася
- іноді зависало завантаження
- COM-порт міг зникати після підключення дисплея
Точної причини визначити не вдалося, але після переходу на ESP32-S3 проблема повністю зникла.
Якщо дисплей заважає прошивці:
спробуйте тимчасово вимкнути живлення дисплея
перевірте GPIO boot strap піни
або використовуйте ESP32-S3
Логіка роботи проєкту
Дисплей використовується як Wi-Fi годинник з двома режимами відображення:
- аналоговий годинник
- цифровий годинник
- Час автоматично синхронізується через інтернет за NTP.
- На GPIO 22 можна підключити кнопку:
- при подачі LOW рівня відображення перемикається між цифровим та аналоговим інтерфейсом.
Чому відмовився від зображення циферблата
Спочатку була спроба використати готове зображення циферблата у вигляді масиву bitmap, але з’явилися проблеми:
- сильна пікселізація
- великий обсяг масиву
- незручно змінювати дизайн
- зайва витрата пам’яті
У підсумку виявилося простіше і краще малювати інтерфейс прямо в коді:
- лінії,
- стрілки,
- кола,
- текст.
Так зображення виглядає охайніше і легше масштабується під різні проєкти.
Перевірка після прошивки
Після завантаження скетчу перевірте:
- чи з’являється зображення
- чи працює підсвічування
- чи підключається Wi-Fi
- чи оновлюється час
- чи реагує кнопка на GPIO 22
Можливі проблеми
Чорний екран
Найчастіше:
- не підключено BL
- помилка в SPI пінах
- поганий контакт Dupont
Білий екран
Зазвичай:
- проблема з ініціалізацією SPI
- невірне підключення DC або CS
- Не прошивається ESP32
Можливий конфлікт boot GPIO при підключеному дисплеї.
Артефакти або сміття на екрані
Підсумок
GC9A01 — один із найзручніших круглих SPI дисплеїв для ESP32 проєктів.
Що важливо враховувати:
- ESP32-S3 працює з ним помітно стабільніше
- TFT_eSPI повністю вирішує завдання
- підсвічування BL обов’язкове
- графіку зручніше малювати кодом, а не bitmap масивами
Головне правило:
Якщо дисплей визначається, але екран порожній — спочатку перевіряйте BL, SPI піни та частоту SPI, а не сам код.




Коментарі до статті
Додати коментар