跳转到内容

TM1621 LCD 显示

tm1621 显示平台允许你在 ESPHome 中使用流行的 TM1621 LCD 显示驱动,可在 Sonoff 设备(如 THR316D、THR320D、POWR316D 或 POWR320D)中找到。

TM1621 LCD 显示。

LCD 有四个信号,cs 用于片选,data 用于数据信号,read 用于读取数据方向,write 用于写入数据方向

# 示例配置条目
display:
platform: tm1621
id: tm1621_display
cs_pin: GPIOXX
data_pin: GPIOXX
read_pin: GPIOXX
write_pin: GPIOXX
lambda: |-
it.printf(0, "%.1f", id(my_sensor1).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(my_sensor2).state);
it.display_humidity(true);
  • cs_pin (必需, Pin Schema): 你连接 CS 线的引脚。

  • data_pin (必需, Pin Schema): 你连接 DATA 线的引脚。

  • read_pin (必需, Pin Schema): 你连接 READ 线的引脚。

  • write_pin (必需, Pin Schema): 你连接 WRITE 线的引脚。

  • lambda (可选, lambda): 用于在 TM1621 上渲染内容的 lambda。 更多信息请参见 渲染 Lambda。

  • update_interval (可选, Time): 重新绘制屏幕的间隔。默认为 1s。

  • id (可选, ID): 手动指定用于代码生成的 ID。

TM1621 与功能齐全的 显示渲染引擎 有类似的 API,但它只是子集,因为 TM1621 LCD 显示没有单个像素的概念。在 lambda 中,你收到一个名为 it 的变量, 与其他所有显示一样。不过在这种情况下,it 是 TM1621 实例(参见 API 参考)。

对 TM1621 最基本的操作是将简单的数字线接到屏幕,如本页面顶部的配置示例所示。但即使你传入的是一个字符串(这里是 "0123" ),ESPHome 也会将其 转换为 TM1621 能理解的表示。

三个方法(print 和 printf )都在开头 可选地接受行号(0 为第一行,1 为第二行)。 此参数默认为 0。

还要注意 .(点)字符是特殊的,因为当 ESPHome 在字符串中遇到它时,前一个位置的 点段将被启用。

display:
- platform: tm1621
# ...
lambda: |-
it.printf(0, "%.1f", id(my_sensor1).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(my_sensor2).state);
it.display_humidity(true);

请参见 格式化文本 了解 printf 格式化规则的介绍。

我们还有五个函数来显示或不显示某些单位:

  • 第一行的 °C:display_celsius(bool)
  • 第一行的 °F:display_fahrenheit(bool)
  • 第二行的 %HR:display_humidity(bool)
  • 第一行的 V 和第二行的 A:display_voltage(bool)
  • 第一行的 kW/h 和第二行的 W:display_kwh(bool)