觸控屏¶
觸控屏不只是顯示器。它是顯示器加用戶輸入。它必須不僅顯示溫度或按鈕,還要告訴設備你在哪裡觸摸。
正因為如此,觸控屏幾乎總是比 OLED 更複雜。你需要選擇不僅大小和解析度,還要理解誰繪製介面、誰處理觸摸、使用什麼介面以及所選韌體是否支援它。
觸控屏何時有用¶
觸控屏在設備需要完整本地介面時是有意義的:
- 選擇烘乾模式;
- 設定溫度和時間;
- 材料配置檔案列表;
- 確認錯誤;
- 手動風扇、照明或擋板控制;
- Wi-Fi 設定;
- 在不使用電話或電腦的情況下查看狀態。
如果你只需要顯示溫度、錯誤和模式,通常 OLED、幾個按鈕、編碼器或網路介面就足夠了。觸控屏增加成本、電源、外殼空間、韌體、電纜和另一個故障點。
主要問題:誰繪製介面¶
購買前,回答主要問題:用戶介面在哪裡。
有幾個不同的屏幕類別:
原始 TFT 是一個簡單的屏幕,帶有控制器如 ILI9341、ILI9488、ST7789,加上單獨的觸摸控制器如 XPT2046 或 FT5x06。你的微控制器或韌體繪製介面。這很靈活但需要代碼、記憶體、驅動程式和校準。
智能 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的應用。
電容觸摸:
- 對手指有反應;
- 通常使用更舒適;
- 可以支援多個觸摸;
- 通常有單獨的控制器如
FT5x06、GT911系列; - 在厚手套和某些保護套下工作更差。
對於車間設備,電阻觸摸有時更實用,因為你可以用指甲或手寫筆按下它。對於外殼上的漂亮面板,電容通常感覺更現代。
電源、背光和電流¶
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;
- 顯示介面;
- 觸摸介面;
- 顯示控制器:例如
ILI9341、ILI9488、ST7789; - 觸摸控制器:例如
XPT2046、FT5x06、GT911; - 電源和背光電流;
- 邏輯等級;
- 韌體中的支援;
- 文件和示例的可用性;
- 程式庫的可用性;
- RAM/PSRAM 要求;
- 主板尺寸、孔和電纜;
- 工作溫度;
- 韌體/介面更新方法。
如果產品描述缺少顯示控制器、介面、電源和連接示例,最好不要將這樣的屏幕用於你的第一個專案。
常見錯誤¶
- 購買了「適用於 Arduino」的屏幕,但專案是 Linux 上的 KlipperScreen;
- 購買了 HDMI 屏幕並嘗試直接連接到 ESP32;
- 購買了 UART 智能顯示但期望它像普通 TFT 工作;
- 選擇了原始 TFT 但沒有計畫時間用於菜單和圖形代碼;
- SPI 顯示器和觸摸控制器的 GPIO 不足;
- 屏幕緩衝區的 RAM 不足;
- 未檢查觸摸控制器;
- 未校準電阻觸摸;
- 屏幕由於背光電源弱而閃爍;
- 電纜靠近加熱器電源線運行;
- 屏幕安裝在熱區;
- 介面看起來不錯,但主要錯誤很難看到。
要點¶
按建築而不是對角線選擇觸控屏。首先決定誰繪製介面:微控制器、屏幕本身、印表機韌體或 Linux 主機。然後檢查介面、電源、觸摸控制器、韌體支援和外殼機械。
對於簡單的加熱器、烘乾機或過濾器,通常 OLED、按鈕或網路介面就足夠了。當用戶真正需要本地介面時才使用觸控屏。
參考資料¶
- KlipperScreen: Hardware - KlipperScreen 的要求和屏幕示例,包括 HDMI/DSI/Raspberry Pi 選項。
- BIGTREETECH TouchScreenFirmware - 韌體和 BTT TFT 模式:觸摸模式、Marlin/12864 模擬、EXP 連接器和設定。
- BIGTREETECH TFT35 V3.0 repository - 流行 3D 印表機 TFT35 的文件和檔案。
- Adafruit 3.5 inch TFT Touchscreen Breakout - 原始 TFT 與 SPI/8 位模式、單獨觸摸和程式庫的示例。
- ESPHome: Touchscreen Components - 觸摸元件、校準和將原始觸摸座標連結到顯示座標的文件。
- ESPHome: ILI9xxx TFT LCD Series - ESPHome 上的原始 TFT 顯示器支援和重要的記憶體限制示例。