跳轉至

觸控屏

觸控屏不只是顯示器。它是顯示器加用戶輸入。它必須不僅顯示溫度或按鈕,還要告訴設備你在哪裡觸摸。

正因為如此,觸控屏幾乎總是比 OLED 更複雜。你需要選擇不僅大小和解析度,還要理解誰繪製介面、誰處理觸摸、使用什麼介面以及所選韌體是否支援它。

觸控屏何時有用

觸控屏在設備需要完整本地介面時是有意義的:

  • 選擇烘乾模式;
  • 設定溫度和時間;
  • 材料配置檔案列表;
  • 確認錯誤;
  • 手動風扇、照明或擋板控制;
  • Wi-Fi 設定;
  • 在不使用電話或電腦的情況下查看狀態。

如果你只需要顯示溫度、錯誤和模式,通常 OLED、幾個按鈕、編碼器或網路介面就足夠了。觸控屏增加成本、電源、外殼空間、韌體、電纜和另一個故障點。

主要問題:誰繪製介面

購買前,回答主要問題:用戶介面在哪裡。

有幾個不同的屏幕類別:

觸控屏類別和誰繪製介面

原始 TFT 是一個簡單的屏幕,帶有控制器如 ILI9341ILI9488ST7789,加上單獨的觸摸控制器如 XPT2046FT5x06。你的微控制器或韌體繪製介面。這很靈活但需要代碼、記憶體、驅動程式和校準。

智能 UART/HMI 顯示器是帶有自己韌體和介面編輯器的屏幕,例如 Nextion。微控制器透過 UART 發送命令,屏幕顯示頁面和元素。這減少了 MCU 負載,但將你的專案綁定到該屏幕的工具和協定。

印表機 TFT(如 BTT TFT35)通常透過 UART 有自己的觸控屏模式,並通過 EXP 連接器進行經典 12864 LCD 模擬。此屏幕對 Marlin/3D 印表機主板很方便,但它不是任何 DIY 設備的通用面板。

Linux 主機的 HDMI/DSI/USB 屏幕就像 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" 屏幕可能完全不同:一個 SPI 模組用於 ESP32,第二個 UART 面板有自己的韌體,第三個 HDMI 屏幕用於 Raspberry Pi。

電阻和電容觸摸

觸摸部分也不同。

電阻觸摸:

  • 對手指、手寫筆或指甲按壓有反應;
  • 通常需要校準;
  • 通常對手勢不太好;
  • 可以更便宜;
  • 搭配控制器如 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 但沒有計畫時間用於菜單和圖形代碼;
  • SPI 顯示器和觸摸控制器的 GPIO 不足;
  • 屏幕緩衝區的 RAM 不足;
  • 未檢查觸摸控制器;
  • 未校準電阻觸摸;
  • 屏幕由於背光電源弱而閃爍;
  • 電纜靠近加熱器電源線運行;
  • 屏幕安裝在熱區;
  • 介面看起來不錯,但主要錯誤很難看到。

要點

按建築而不是對角線選擇觸控屏。首先決定誰繪製介面:微控制器、屏幕本身、印表機韌體或 Linux 主機。然後檢查介面、電源、觸摸控制器、韌體支援和外殼機械。

對於簡單的加熱器、烘乾機或過濾器,通常 OLED、按鈕或網路介面就足夠了。當用戶真正需要本地介面時才使用觸控屏。

參考資料