Перейти к содержанию

Сенсорные экраны

Сенсорный экран - это не просто дисплей. Это дисплей плюс ввод от пользователя. Он должен не только показать температуру или кнопку, но и передать в устройство, куда нажали.

Из-за этого сенсорный экран почти всегда сложнее OLED. Нужно выбрать не только размер и разрешение, но и понять, кто рисует интерфейс, кто обрабатывает касания, какой интерфейс используется и поддерживает ли это выбранная прошивка.

Когда сенсорный экран полезен

Сенсорный экран имеет смысл, если на устройстве нужен полноценный локальный интерфейс:

  • выбор режима сушки;
  • установка температуры и времени;
  • список профилей материалов;
  • подтверждение ошибок;
  • ручное управление вентилятором, подсветкой или заслонкой;
  • настройка Wi-Fi;
  • просмотр статуса без телефона или компьютера.

Если нужно только показать температуру, ошибку и режим, чаще достаточно OLED, пары кнопок, энкодера или веб-интерфейса. Сенсорный экран добавляет цену, питание, место в корпусе, прошивку, кабели и новую точку отказа.

Главный вопрос: кто рисует интерфейс

Перед покупкой нужно ответить на главный вопрос: где живёт пользовательский интерфейс.

Есть несколько разных классов экранов:

Классы сенсорных экранов и кто рисует интерфейс

Raw TFT - это простой экран с контроллером, например ILI9341, ILI9488, ST7789, плюс отдельный контроллер касания вроде XPT2046 или FT5x06. Интерфейс рисует твой микроконтроллер или прошивка. Это гибко, но требует кода, памяти, драйверов и калибровки.

Smart UART/HMI display - это экран со своей прошивкой и редактором интерфейса, например Nextion-подобный подход. Микроконтроллер отправляет команды по UART, а экран сам показывает страницы и элементы. Это снижает нагрузку на MCU, но привязывает проект к инструментам и протоколу конкретного экрана.

Принтерный TFT, например BTT TFT35, часто имеет собственный режим тач-экрана через UART и режим эмуляции классического 12864 LCD через EXP-разъёмы. Такой экран удобен для Marlin/3D-принтерных плат, но не является универсальной панелью для любого DIY-устройства.

HDMI/DSI/USB экран для Linux-хоста работает как обычный монитор и тач-устройство для Raspberry Pi или другого Linux-компьютера. Такой вариант подходит для KlipperScreen, но не подключается напрямую к маленькому ESP32 как простой модуль.

Интерфейсы подключения

Сенсорные экраны могут использовать разные интерфейсы.

Частые варианты:

  • SPI - часто у маленьких TFT для ESP32/Arduino;
  • I2C - часто у контроллеров ёмкостного тача, иногда у тач-контроллеров;
  • UART - у smart display и некоторых 3D-принтерных TFT;
  • EXP1/EXP2/EXP3 - у экранов, совместимых с 3D-принтерными платами;
  • HDMI + USB - у Linux-экранов для Raspberry Pi;
  • DSI - у некоторых Raspberry Pi экранов;
  • параллельный RGB/8080 - у более быстрых TFT, но проводов и требований больше.

Нельзя выбирать экран только по диагонали. Два экрана 3.5" могут быть совершенно разными: один SPI-модуль для ESP32, второй UART-панель со своей прошивкой, третий HDMI-экран для Raspberry Pi.

Резистивный и ёмкостный touch

Touch-часть тоже бывает разной.

Резистивный тач:

  • реагирует на давление пальцем, стилусом или ногтем;
  • часто требует калибровки;
  • обычно хуже для жестов;
  • может быть дешевле;
  • встречается с контроллерами вроде XPT2046.

Ёмкостный тач:

  • реагирует на палец;
  • обычно приятнее в использовании;
  • может поддерживать несколько касаний;
  • часто имеет отдельный контроллер, например семейства FT5x06, GT911 и похожие;
  • хуже работает в толстых перчатках и с некоторыми защитными накладками.

Для устройства в мастерской резистивный тач иногда практичнее, потому что по нему можно нажать ногтем или стилусом. Для красивой панели на корпусе ёмкостный экран обычно ощущается современнее.

Питание, подсветка и ток

TFT-экран потребляет больше, чем маленький OLED. Главный потребитель - подсветка.

Перед подключением проверь:

  • напряжение питания экрана;
  • ток подсветки;
  • нужен ли отдельный 5V источник;
  • можно ли регулировать яркость подсветки;
  • совместимы ли логические уровни;
  • не перегружает ли экран стабилизатор платы;
  • не просаживается ли питание при включении подсветки.

Если экран начинает белеть, моргать, перезагружать контроллер или терять touch-события, сначала проверяют питание и землю, а не переписывают интерфейс.

Для устройства с нагревателем экран не должен питаться от случайного слабого пина платы. Он должен быть частью нормальной схемы питания с понятным запасом.

Прошивка и совместимость

Красивый экран бесполезен, если его не поддерживает выбранная прошивка.

Для ESP32/Arduino-подхода нужно проверить:

  • есть ли драйвер дисплея;
  • есть ли драйвер touch-контроллера;
  • хватает ли GPIO;
  • хватает ли RAM/PSRAM для буфера;
  • какой графический фреймворк используется;
  • кто будет писать меню.

Для ESPHome нужно смотреть поддержку конкретного display-драйвера и touchscreen-компонента. Например, ILI9xxx-дисплеи и XPT2046 touch требуют SPI и отдельной конфигурации, а резистивный touch требует калибровки.

Для Klipper обычно есть два разных мира:

  • маленькие дисплеи, подключённые к MCU и описанные в конфигурации Klipper;
  • KlipperScreen на Linux-хосте, где экран работает как монитор и touch-устройство.

KlipperScreen обычно требует экран, на котором Linux может показать рабочий стол или консоль. Это не то же самое, что маленький UART TFT, подключённый к принтерной плате.

Для Marlin/принтерных плат нужно смотреть, поддерживает ли конкретный экран нужный режим: UART touch mode, 12864 emulation, EXP1/EXP2/EXP3, конкретный тип контроллера в конфигурации прошивки.

Smart display и Nextion-подобные экраны

Smart display удобен тем, что экран сам хранит страницы, кнопки, шрифты и картинки. Контроллер отправляет команды по UART и получает события касания.

Плюсы:

  • меньше нагрузки на микроконтроллер;
  • меньше графического кода в основной прошивке;
  • можно нарисовать интерфейс в редакторе экрана;
  • достаточно UART и питания.

Минусы:

  • нужно изучать отдельный редактор и протокол;
  • интерфейс часто хранится в самом экране;
  • сложнее поддерживать версии UI и прошивки устройства;
  • не все элементы ведут себя как в обычном приложении;
  • замена экрана может потребовать переделки проекта.

Для простого устройства smart display может быть хорошим решением, если нужна красивая панель без Linux-хоста. Но его нельзя считать "обычным монитором": это отдельный модуль со своей логикой.

Корпус, кабели и обслуживание

Сенсорный экран - это деталь, которую пользователь трогает руками. Поэтому важны не только провода, но и механика.

Проверь заранее:

  • экран не стоит в горячей зоне;
  • есть рамка или защитная посадка;
  • шлейф не перегибается при открытии крышки;
  • кабель можно отключить при обслуживании;
  • разъём нельзя вставить наоборот;
  • на экран не давит корпус;
  • есть доступ к SD-карте или USB, если они нужны для обновления;
  • пользователь не касается силовых частей при работе с экраном;
  • проводка touch/display отделена от проводов нагревателя.

Для устройств с нагревателем экран лучше выносить в пользовательскую зону, отделённую от горячего воздуха и силовой части.

Что проверить перед покупкой

Перед покупкой сенсорного экрана проверь:

  • диагональ и разрешение;
  • тип дисплея: raw TFT, smart UART, принтерный TFT, HDMI/DSI;
  • интерфейс дисплея;
  • интерфейс touch;
  • контроллер дисплея: например ILI9341, ILI9488, ST7789;
  • контроллер touch: например XPT2046, FT5x06, GT911;
  • питание и ток подсветки;
  • логические уровни;
  • поддержка в прошивке;
  • наличие документации и примеров;
  • наличие библиотек;
  • требования к RAM/PSRAM;
  • размеры платы, отверстия и шлейф;
  • рабочая температура;
  • способ обновления прошивки/интерфейса экрана.

Если в описании товара нет контроллера дисплея, интерфейса, питания и примеров подключения, такой экран лучше не брать для первого проекта.

Типовые ошибки

  • купили экран "для Arduino", а в проекте KlipperScreen на Linux;
  • купили HDMI-экран и пытаются подключить его к ESP32 напрямую;
  • купили UART smart display и ожидают, что он будет работать как обычный TFT;
  • выбрали raw TFT, но не заложили время на меню и графический код;
  • не хватает GPIO для SPI-дисплея и touch-контроллера;
  • не хватает RAM для буфера экрана;
  • не проверили контроллер touch;
  • не сделали калибровку резистивного тача;
  • экран моргает из-за слабого питания подсветки;
  • шлейф проходит рядом с силовой проводкой нагревателя;
  • экран поставили в горячую зону;
  • интерфейс получился красивым, но главная авария на нём плохо видна.

Главное

Сенсорный экран нужно выбирать не по диагонали, а по архитектуре. Сначала реши, кто рисует интерфейс: микроконтроллер, сам экран, принтерная прошивка или Linux-хост. Потом проверяй интерфейс, питание, touch-контроллер, поддержку в прошивке и механику корпуса.

Для простого нагревателя, сушилки или фильтра часто достаточно OLED, кнопки или веб-интерфейса. Сенсорный экран стоит ставить, когда локальный интерфейс действительно нужен пользователю.

Материалы по теме

  • KlipperScreen: Hardware - требования и примеры экранов для KlipperScreen, включая HDMI/DSI/Raspberry Pi варианты.
  • BIGTREETECH TouchScreenFirmware - прошивка и режимы BTT TFT: touch mode, Marlin/12864 emulation, EXP-разъёмы и настройки.
  • BIGTREETECH TFT35 V3.0 repository - документация и файлы для распространённого 3D-принтерного TFT35.
  • Adafruit 3.5 inch TFT Touchscreen Breakout - пример raw TFT с SPI/8-bit режимами, отдельным touch и библиотеками.
  • ESPHome: Touchscreen Components - документация по touch-компонентам, калибровке и связи raw touch-координат с координатами дисплея.
  • ESPHome: ILI9xxx TFT LCD Series - пример поддержки raw TFT-дисплеев на ESPHome и важные ограничения по памяти.