跳转至

OLED 显示屏

OLED 显示屏是一个显示文本、数字、简单图标和设备状态的小屏幕。与普通 LCD 不同,OLED 自身发光,不需要单独的背光。所以小型 OLED 模块清晰易读、占用空间小,对于简单的 DIY 设备很方便。

在 iDryer 等设备中,OLED 可显示温度、湿度、工作模式、错误、Wi-Fi 状态、剩余灯丝或当前干燥阶段。

OLED 何时有用

如果用户需要直接在机箱上看到设备状态,OLED 值得添加:

  • 当前腔室温度;
  • 湿度;
  • 目标温度;
  • 工作模式;
  • 计时器;
  • 传感器错误;
  • 风扇或加热器状态;
  • 连接状态;
  • 没有大屏幕的简单菜单。

如果设备始终通过 Klipper、网络界面或移动应用程序管理,单独的 OLED 可能不必要。它增加了接线、机箱空间、代码和另一个故障点。

典型大小和控制器

最常见的小型 OLED 模块:

  • 128x32 像素;
  • 128x64 像素;
  • 对角线约 0.91"0.96"
  • 单色:白色、蓝色、黄蓝;
  • 带控制器 SSD1306 或类似 SH1106

SSD1306SH1106 看起来相似,但在代码中并不总是完全兼容。如果库为 SSD1306 设置,但模块实际上是 SH1106,屏幕可能显示移位的图片、垃圾或不工作。

购买前,重要的是不仅检查屏幕大小,还要检查控制器、接口和供电电压。

I2C 和 SPI

小型 OLED 模块通常通过 I2C 或 SPI 连接。

I2C 模块通常有 4 个触点:

  • VCC
  • GND
  • SDA
  • SCL

SPI 模块通常需要更多线路:

  • VCC
  • GND
  • SCK/CLK
  • MOSI/DIN
  • CS
  • DC
  • 有时 RST

I2C 更简单接线,通常足以显示状态、温度和简单菜单。SPI 更快,如果屏幕经常重绘会更好,但对于小型状态显示,这很少是关键。

将 I2C OLED 显示屏连接到控制器

来源: Adafruit Learning System, CC BY-SA 3.0

电源和逻辑电平

OLED 模块可能额定为 3.3V5V 或在板上具有稳压器和电平转移。从外部,这样的模块看起来几乎相同。

连接前,检查:

  • 模块或产品页面上列出的电源;
  • SDA/SCL 线是否与控制器逻辑兼容;
  • 模块是否有 I2C 上拉;
  • 上拉是否与控制器电压冲突。

对于 ESP32 和大多数现代微控制器,假设 3.3V 逻辑更安全。如果 OLED 模块将 I2C 拉到 5V,对于 3.3V 控制器可能有问题。

许多流行的 I2C OLED 模块从 3.3V 工作,并直接连接到 ESP32 没有问题,但你需要检查特定的模块。

I2C 地址

I2C OLED 通常有地址:

  • 0x3C
  • 0x3D

如果屏幕不响应,在检查电源和线路后,地址是要检查的第一件事。一些模块允许你通过跳线或在板上焊接小跳线更改地址。

地址错误的迹象:

  • 草图或固件启动但屏幕空白;
  • I2C 扫描仪在不同地址看到设备;
  • 库初始化显示而无可见结果;
  • 0x3C 改为 0x3D 时它工作。

在小屏幕上显示什么

128x32128x64 OLED 空间非常小。不要尝试在上面制作完整的智能手机界面。

对于干燥机或加热器的好设置:

  • 大的当前温度;
  • 目标温度;
  • 湿度如果有传感器;
  • 模式:HEATDRYIDLEERROR
  • 小风扇/加热图标;
  • 错误代码或简短消息。

坏的设置:

  • 长句子;
  • 小表格;
  • 一个屏幕上的许多菜单项;
  • 不断滚动的文本;
  • 有用状态而不是装饰动画。

对于有加热器的设备,快速看到错误比漂亮的启动屏幕更重要。

烧屏和亮度

OLED 像素从发光而老化。如果你在一个地方显示相同的明亮文本多个小时,最终可能会出现痕迹。

对于 DIY 设备,这并不总是关键,但最好:

  • 在没有需要时不要保持亮度最大;
  • 在空闲时间后关闭屏幕;
  • 偶尔移动静态元素;
  • 不显示白色填充持续;
  • 使用简短更新而不是额外的动画。

在温暖的腔室或靠近加热器,OLED 也活得更差。最好将电子产品保持在不超过模块范围的受控温度区域。

线长和干扰

I2C 不喜欢长线,尤其是靠近电机、加热器和电源线。如果 OLED 在门或可移除面板上,长灵活的电缆可能成为噪声源。

实用规则:

  • 保持 SDASCL 短;
  • 将它们远离加热器电源线;
  • 使用公共 GND
  • 不要制作向后进入的连接器;
  • 对于可移除的盖,使用适当的连接器和应变释放;
  • 如果 I2C 不稳定,首先缩短线并检查上拉。

SPI 通常容许更高的更新速度,但有更多的线路,连接错误更常见。

OLED 或触摸屏

OLED 擅长显示状态。没有按钮、编码器或其他控制,它不解决输入问题。

如果用户经常需要直接在设备上改变设置,你可能需要:

  • 编码器 + OLED;
  • 几个按钮 + OLED;
  • TFT 显示屏;
  • 触摸屏;
  • 网络界面或应用。

不要仅因为 OLED 看起来小而安装触摸屏。对于简单的设备,带一个按钮的小 OLED 有时更可靠和清晰。

购买前的检查清单

购买 OLED 模块前,检查:

  • 大小:128x32128x64 或其他;
  • 控制器:SSD1306SH1106SH1107
  • 接口:I2C 或 SPI;
  • 电源:3.3V5V 或范围;
  • 逻辑电平;
  • I2C 地址如列出;
  • 重置引脚支持;
  • 在所选固件或库中的支持;
  • 物理板尺寸和安装孔;
  • 连接器位置;
  • 工作温度;
  • 颜色和你需要的角度的可读性。

对于 ESP32 设备,I2C OLED 128x64SSD1306 上地址 0x3C 通常最方便。对于 Klipper 板,检查特定的板是否支持你选择的总线,以及显示器如何在配置中描述。

典型错误

  • 混淆了 SDASCL
  • 将电源连接到错误的电压;
  • 没有检查 I2C 地址;
  • 在代码中选择了 SSD1306 但模块是 SH1106
  • 使 I2C 线路太长;
  • 忘记了公共 GND
  • 将 5V 上拉模块连接到 3.3V 控制器而不检查;
  • 选择 SPI 模块期望像 I2C 一样的 4 针;
  • 在热区放置屏幕;
  • 添加显示器而不了解它为用户解决什么问题。

主要点

OLED 显示屏对于短状态和简单的本地界面很好。对于大多数 DIY 设备,I2C OLED 128x64 足够如果电源兼容且所选固件支持。

连接前,检查显示控制器、接口、电源、I2C 地址和线长。如果设备已通过网络界面很方便,OLED 可能不需要。

参考资料