MAX7219 7 段显示
max7219 显示平台允许你使用 ESPHome 的 MAX7219 7 段显示驱动(
数据手册,
hobbycomponents)。
请注意,此组件仅用于 7 段显示,不用于矩阵配置。

由于与 MAX7219 的通信是通过 SPI 进行的,因此你需要
在配置中有一个 SPI 总线,并设置 mosi_pin(不需要 miso_pin)。
将 VCC 连接到 3.3V(制造商推荐 4+ V,但 3.3V 似乎工作正常),DIN 连接到你的 mosi_pin,
CS 连接到你的 cs_pin,最后 GND 连接到 GND。
你甚至可以级联多个 MAX7219,方法是将级联中前一个芯片的 DOUT 连接到 下一个 DIN。超过约 3 个芯片时,3.3V 可能不够,所以你可能需要 使用电平转换器。
# 示例配置条目spi: clk_pin: D0 mosi_pin: D1
display: - platform: max7219 cs_pin: D2 num_chips: 1 lambda: |- it.print("01234567");-
cs_pin (必需, Pin Schema): 你连接 CS 线的引脚。
-
num_chips (可选, int): 用于级联的芯片数量。默认为
1。 -
intensity (可选, int): MAX7219 驱动输出的强度。范围从 0(最弱)到 15(默认值)。
-
lambda (可选, lambda): 用于在 MAX7219 上渲染内容的 lambda。 更多信息请参见 渲染 Lambda。
-
update_interval (可选, Time): 重新绘制屏幕的间隔。默认为
1s。 -
id (可选, ID): 手动指定用于代码生成的 ID。
-
reverse_enable (可选, boolean): 对于某些显示器,芯片的顺序是反的,你会看到”56781234”而不是”12345678”。此选项将调整输出以补偿。默认为
false。
渲染 Lambda
Section titled “渲染 Lambda”MAX7219 与功能齐全的 显示渲染引擎 有类似的 API,但它只是子集,因为 MAX7219
7 段显示没有单个像素的概念。在 lambda 中,你收到一个名为 it 的变量,
与其他所有显示一样。不过在这种情况下,it 是 MAX7219 实例(参见 API 参考)。
对 MAX7219 最基本的操作是将简单的数字线接到屏幕,如本页面顶部的配置示例所示。但即使你传入的是一个字符串(这里是 "01234567" ),ESPHome 也会将其
转换为 MAX7219 能理解的表示:应该打开的确切像素。当然,
并非所有字符都可以表示。你可以在下方看到字符完整列表。
三个方法(print、printf 和 strftime )都在开头
可选地接受一个位置参数,可用于在特定位置打印文本。此参数默认为 0,
意味着第一个 MAX7219 的第一个字符。例如,要在第一个 MAX7219 末尾
开始文本的第一个字符,你会写 it.print(7, "0");。
还要注意 .(点)字符是特殊的,因为当 ESPHome 在字符串中遇到它时,前一个位置的
点段将被启用。
display: - platform: max7219 # ... lambda: |- // 在位置 0(左侧)打印 0 it.print("0"); // 结果:"0 "
// 在位置 1(第二个字符)打印 1 it.print(1, "1"); // 结果:"01 "
// 写一个传感器值(假设它是 42.1) it.printf(3, "%.1f", id(my_sensor).state); // 结果:"01 42.1 "(点将出现在"2"段位上)
// 用空白覆盖先前的内容 it.print(" "); // 打印右填充的传感器值,小数点后 0 位 it.printf("SENS%4.0f", id(my_sensor).state); // 结果:"SENS 42"
// 打印当前时间 it.print(" "); it.strftime("%H.%M.%S", id(esptime).now()); // 10:06:42 的结果 -> "10.06.42 "
// 根据另一个 id 更改显示强度。 // 值应在 0-15 之间。 it.set_intensity(id(my_brightness));请参见 格式化文本 了解 printf 格式化规则的介绍,以及
显示时间 了解 strftime 时间格式化的介绍。
所有 7 段字符
Section titled “所有 7 段字符”| MAX7219 表示 | 字符 |
|---|---|
| (空格) | |
. | |
! | |
0、O | |
1、I | |
2、Z | |
3 | |
4 | |
5、S、s | |
6 | |
7 | |
8 | |
9 | |
H | |
(、[、C | |
{ | |
)、] | |
}、T、t | |
` | |
' | |
" | |
@ | |
? | |
,、i | |
% | |
* | |
: | |
; | |
A、a | |
B、b | |
D、d | |
E、e | |
F、f | |
G、g | |
J、j | |
L、l | |
N、n | |
P、p | |
Q | |
R、r | |
U、V | |
W | |
Y、y | |
- | |
_ | |
= | |
| | |
c | |
h | |
o | |
u、v | |
~ |
NOTE
原始 7 段显示基础图像取自维基百科 https://de.wikipedia.org/wiki/Datei:7_Segment_Display.svg 由用户 h2g2bob 提供,采用 Creative Commons BY-SA 3.0 许可,并为此文档进行了修改。