跳转至

触摸屏

触摸屏不仅仅是显示屏。它是显示屏加用户输入。它不仅必须显示温度或按钮,还必须告诉设备你在哪里触摸。

因此,触摸屏几乎总是比 OLED 更复杂。你需要选择不仅大小和分辨率,还要理解谁绘制界面、谁处理触摸、使用什么界面以及所选固件是否支持它。

触摸屏何时有用

如果设备需要完整的本地界面,触摸屏是有意义的:

  • 选择干燥模式;
  • 设置温度和时间;
  • 材料配置文件列表;
  • 确认错误;
  • 手动风扇、照明或阻尼器控制;
  • Wi-Fi 设置;
  • 在没有电话或计算机的情况下查看状态。

如果你只需要显示温度、错误和模式,通常 OLED、几个按钮、编码器或网络界面就足够了。触摸屏增加成本、电源、机箱空间、固件、线和另一个故障点。

主要问题:谁绘制界面

购买前,回答主要问题:用户界面住在哪里。

有几种不同的屏幕类:

触摸屏的类及谁绘制界面

原始 TFT 是带有 ILI9341ILI9488ST7789 等控制器的简单屏幕,加上 XPT2046FT5x06 等单独的触摸控制器。你的微控制器或固件绘制界面。这很灵活但需要代码、内存、驱动程序和标定。

智能 UART/HMI 显示是带有自己固件和界面编辑器的屏幕,如 Nextion。微控制器通过 UART 发送命令,屏幕显示页面和元素。这减少了 MCU 负载,但将你的项目绑定到该屏幕的工具和协议。

打印机 TFT,如 BTT TFT35,通常通过 UART 有自己的触摸屏模式,通过 EXP 连接器有经典 12864 LCD 模拟。这个屏幕对于 Marlin/3D 打印机板很方便,但它不是任何 DIY 设备的通用面板。

HDMI/DSI/USB 屏幕用于 Linux 主机,其工作方式像 Raspberry Pi 或其他 Linux 计算机的常规监视器和触摸设备。这适合 KlipperScreen,但不能作为简单模块直接连接到小型 ESP32。

连接接口

触摸屏使用不同的接口。

常见选项:

  • SPI - 通常在 ESP32/Arduino 的小型 TFT 上;
  • I2C - 通常在电容触摸控制器上,有时在触摸控制器上;
  • UART - 在智能显示和一些 3D 打印机 TFT 上;
  • EXP1/EXP2/EXP3 - 在与 3D 打印机板兼容的屏幕上;
  • HDMI + USB - 在用于 Raspberry Pi 的 Linux 屏幕上;
  • DSI - 在某些 Raspberry Pi 屏幕上;
  • 并行 RGB/8080 - 在更快的 TFT 上,但更多线和要求。

你不能仅按对角线选择屏幕。两个 3.5" 屏幕可能完全不同:一个 ESP32 的 SPI 模块,第二个带自己固件的 UART 面板,第三个用于 Raspberry Pi 的 HDMI 屏幕。

电阻和电容触摸

触摸部分也有所不同。

电阻触摸:

  • 响应手指、触笔或指甲压力;
  • 通常需要标定;
  • 通常对手势更差;
  • 可能更便宜;
  • 使用 XPT2046 等控制器进行。

电容触摸:

  • 响应手指;
  • 通常使用更好;
  • 可以支持多触摸;
  • 通常有 FT5x06GT911 等单独控制器;
  • 使用厚手套和某些保护套效果更差。

对于车间设备,电阻触摸有时更实用,因为你可以用指甲或触笔按它。对于机箱上的漂亮面板,电容通常感觉更现代。

电源、背光和电流

TFT 屏幕吸取比小型 OLED 更多的功率。主要功率消费者是背光。

连接前,检查:

  • 屏幕电源电压;
  • 背光电流;
  • 你是否需要单独的 5V 源;
  • 背光亮度是否可调;
  • 逻辑电平是否兼容;
  • 屏幕是否过载板稳压器;
  • 背光打开时电源是否下降。

如果屏幕变白、闪烁、重启控制器或失去触摸事件,首先检查电源和地,而不是接口代码。

对于有加热器的设备,屏幕不应从随机弱引脚供电。它应该是清晰裕度的适当电源方案的一部分。

固件和兼容性

如果所选固件不支持,漂亮的屏幕就没用了。

对于 ESP32/Arduino 方法,你需要检查:

  • 是否有显示驱动器;
  • 是否有触摸控制器驱动器;
  • GPIO 是否充足;
  • 缓冲区是否有足够的 RAM/PSRAM;
  • 使用什么图形框架;
  • 谁将编写菜单。

对于 ESPHome,检查特定显示驱动器和触摸屏组件的支持。例如,ILI9xxx 显示和 XPT2046 触摸需要 SPI 和单独的配置,电阻触摸需要标定。

对于 Klipper,通常有两个不同的世界:

  • 连接到 MCU 的小显示,在 Klipper 配置中描述;
  • Linux 主机上的 KlipperScreen,屏幕作为监视器和触摸设备工作。

KlipperScreen 通常需要一个 Linux 可以显示桌面或控制台的屏幕。这与连接到打印机板的小型 UART TFT 不同。

对于 Marlin/打印机板,检查特定屏幕是否支持所需模式:UART 触摸模式、12864 模拟、EXP1/EXP2/EXP3、固件配置中的特定控制器类型。

智能显示和 Nextion 类屏幕

智能显示很方便,因为屏幕存储页面、按钮、字体和图像。控制器通过 UART 发送命令并获取触摸事件。

优点:

  • 减少微控制器负载;
  • 主固件中的图形代码更少;
  • 你可以在屏幕编辑器中绘制界面;
  • 只需 UART 和电源。

缺点:

  • 你需要学习单独的编辑器和协议;
  • 界面通常存储在屏幕中;
  • 更难保持 UI 和设备固件版本同步;
  • 不是所有元素的行为都像普通应用程序;
  • 替换屏幕可能需要重新设计。

对于简单的设备,如果你需要漂亮的面板而不是 Linux 主机,智能显示可以是一个好的解决方案。但它不是"普通显示器":它是一个带自己逻辑的单独模块。

机箱、线和维修

触摸屏是用户用手触摸的东西。所以机制很重要,不仅仅是线。

提前检查:

  • 屏幕不在热区;
  • 有框架或保护安装;
  • 打开盖时线缆不会急剧弯曲;
  • 线可以断开以进行维修;
  • 连接器不能向后进入;
  • 机箱不按压屏幕;
  • 如果需要,有权限到 SD 卡或 USB 以进行更新;
  • 用户在使用屏幕时不触摸电源部件;
  • 触摸/显示线与加热器线分离。

对于有加热器的设备,最好将屏幕移到用户区,远离热空气和电源部件。

购买前的检查清单

购买触摸屏前,检查:

  • 对角线和分辨率;
  • 显示类型:原始 TFT、智能 UART、打印机 TFT、HDMI/DSI;
  • 显示接口;
  • 触摸接口;
  • 显示控制器:例如 ILI9341ILI9488ST7789
  • 触摸控制器:例如 XPT2046FT5x06GT911
  • 电源和背光电流;
  • 逻辑电平;
  • 固件中的支持;
  • 文档和示例的可用性;
  • 库的可用性;
  • RAM/PSRAM 要求;
  • 板尺寸、孔和线;
  • 工作温度;
  • 固件/界面更新方法。

如果产品描述缺少显示控制器、接口、电源和连接示例,最好不要在第一个项目中使用这样的屏幕。

典型错误

  • 购买了"用于 Arduino"的屏幕,但项目是 Linux 上的 KlipperScreen;
  • 购买了 HDMI 屏幕并尝试直接连接到 ESP32;
  • 购买了 UART 智能显示,但期望像普通 TFT 一样工作;
  • 选择了原始 TFT,但没有为菜单和图形代码计划时间;
  • GPIO 不足以用于 SPI 显示和触摸控制器;
  • 屏幕缓冲区的 RAM 不足;
  • 没有检查触摸控制器;
  • 没有标定电阻触摸;
  • 屏幕由于背光电源弱而闪烁;
  • 线缆靠近加热器电源线;
  • 屏幕安装在热区;
  • 界面看起来不错,但主错误很难看到。

主要点

按体系结构而不是对角线选择触摸屏。首先决定谁绘制界面:微控制器、屏幕本身、打印机固件或 Linux 主机。然后检查接口、电源、触摸控制器、固件支持和机箱机制。

对于简单的加热器、干燥机或过滤器,通常 OLED、按钮或网络界面就足够了。当用户真正需要本地界面时,使用触摸屏。

参考资料