В этом руководстве вы узнаете, как начать работу с сенсорным TFT дисплеем на контроллере ESP32. Он отлично подходит для создания графических пользовательских интерфейсов для ваших проектов Интернета вещей.
Дисплей, который мы используем в этом руководстве, имеет размер 2.8 дюйма и выполнен в технологии TFT LCD, а также обладает сенсорным экраном. Для обмена данными с дисплеем используется протокол SPI, а для управления им – драйвер ILI9341. Вы можете писать текст, рисовать фигуры и отображать изображения. Сенсорный экран также использует протокол SPI.




















15 комментариев. Оставить новый
товарищи, ваш setup не верный, проверьте пины MOSI и MISO
Здравствуйте, мы не видим ошибки.
Setup Правильный, а вот в указаном подключении ошибка: SDO(MISO) и Reset перепутаны местами. Да и если Reset подключили на 16 GPIO а не к ресету, тогда и в User_Setup.h Reset надо указать не -1 а 16
Сколько смотрю примеры подключения, но все просто игнорируют подключение SD карты …Это такая не нужная вещь ?????
Здравствуйте!
В этом примере мы рассматривали подключение именно дисплея. Процесс подключения SD карты является стандартным и не отличается от подключения других SD модулей для Arduino, поэтому мы не стали углубляться в эту тему. Чтобы подключить SD карту, необходимо использовать интерфейс SPI, для чего на дисплее предусмотрены специальные контакты.
Для работы с SD картой в среде Arduino IDE вы можете воспользоваться библиотекой SD.
Что насчёт sd карты или что там? Где об этом узнать?
Доброго! В скетче и вообще нигде не вижу определение пинов для тачскрина кроме cs и irq. Остальные где настраиваются? Можно ли подключить и тач и дисплей на одну шину SPI? у нас же еще и sd есть, а шин всего две
Здравствуйте!
Настройка пинов происходит в файле User_Setup.h.
MOSI, MISO и CLK можно запараллелить.
Понятное и минимально необходимое описание принципов программирования подобных устройств. Благодарю. Остальное нужно брать из примеров по ссылкам к приобретаемому гаджету, т.к. драйверы/протоколы/шины могут отличаться
Здравствуйте. У меня есть экран TFT SPI 480×320 с чипом ST7796S
Не могли бы вы мне помочь настроить User_Setup.h?
Я пытался весь день, но выдает только белый экран, и больше ничего.
Здравствуйте. Да, помочь можно, но для начала нужно прояснить несколько вещей, иначе будем стрелять вслепую.
Что нужно уточнить
Ответьте, пожалуйста, на 4 пункта:
1. Какой контроллер/плата:
– Arduino Uno / Mega / ESP8266 / ESP32 / STM32 / RP2040 и т.п.?
2. Какой именно модуль:
– Это “голая” плата 4.0″ ST7796 SPI (часто 480×320, 4‑wire SPI) вроде модулей с LCDWiki или AliExpress?
– Есть ли на плате отдельный чип тач‑контроллера (XPT2046, GT911 и т.п.)?
3. Какие пины подключены:
– SCK / MOSI / MISO (если есть)
– CS (TFT_CS), DC (TFT_DC / RS), RST
– Подсветка (LED / BL / BKL) – на что посажена (GPIO, через транзистор, напрямую на 3.3/5 В)?
4. Какую библиотеку и версию используете:
– Bodmer TFT_eSPI (из Library Manager Arduino IDE / PlatformIO)?
– Или другая (Adafruit GFX, Arduino_GFX и т.д.)?
Сразу после этого можно будет написать вам конкретный кусок
User_Setup.hименно под вашу плату, например в стиле:#define ST7796_DRIVER
#define TFT_WIDTH 320
#define TFT_HEIGHT 480
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 5
#define TFT_DC 2
#define TFT_RST 4
//#define TFT_MISO 19 // если реально подключен
и проверить, что:
– выбран только один драйвер (
#define ST7796_DRIVER, остальные закомментированы);– размеры 320×480 стоят именно так, а ориентацию потом задаёте
tft.setRotation(1/3);– подсветка реально запитана (часто белый экран = есть подсветка, но инициализации нет из‑за неверных пинов CS/DC/RST или неправильного драйвера).
## Минимальный тестовый скетч
Параллельно подготовьте простой пример на TFT_eSPI:
#include
TFT_eSPI tft;
void setup() {
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.fillRect(10, 10, 100, 50, TFT_RED);
}
void loop() {}
После того как вы пришлёте:
– тип платы;
– схему (хотя бы текстом, какие пины куда);
– ваш текущий
User_Setup.h(илиtft_setup.h, если так делаете),сделаем вам готовый, проверенный вариант настроек и укажем, что именно могло давать белый экран (драйвер, размеры, пины, питание или уровень логики).
1. esp32 devmodule c-S1
2. плата модуль 480×320 TFT SPI с алиэкспресса
3. CS – 11 | RESET – 10 | DC/RS – 9 | SDI(MOSI) – 13 | SCK – 12| LED – 14
4. TFT_eSPI Arduino IDE
Написал на гитхабе разработчикам, не помогли. В чем проблема – не знаю. Экран точно рабочий
XPT2046 контроллер есть, забыл написать
Здравствуйте, я решил свою проблему. Дело в том, что у не ESP32 devmodule c-s1, а NodeMCU-32 S1 v1.3
Я не правильно определял слоты.