跳转到内容

矩阵键盘

matrix_keypad 组件允许你集成这样的键盘面板: 其按键连接在矩阵的行与列的交点处。

# 示例配置条目
matrix_keypad:
id: mykeypad
rows:
- pin: GPIOXX
- pin: GPIOXX
- pin: GPIOXX
- pin: GPIOXX
columns:
- pin: GPIOXX
- pin: GPIOXX
- pin: GPIOXX
- pin: GPIOXX
keys: "123A456B789C*0#D"
has_diodes: false
on_key:
- lambda: ESP_LOGI("KEY", "key %d pressed", x);
  • id (可选, ID): 设置此设备的 ID,供在 lambda 中使用。

  • rows (必选, list): 水平矩阵线所连接的引脚列表,按从上到下排列。这些引脚需要具备输出能力。

  • columns (必选, list): 垂直矩阵线所连接的引脚列表,按从左到右排列。这些引脚需要具备输入能力 并启用上拉。如果没有内部上拉,则需要外部上拉电阻。

  • keys (可选, string): 矩阵上的按键,从左到右、从上到下逐行排列。对于 key_collector 和 binary_sensor(如果使用按键选择)是必需的。

  • has_diodes (可选, boolean): 适用于行引脚为输出、且按键 通过二极管连接的键盘面板。默认为 false。

  • has_pulldowns (可选, boolean): 适用于列线带有外部下拉电阻的键盘面板。默认为 false。

可以将单个按键独立加入 ESPHome,作为 binary_sensor:

# 示例配置条目
binary_sensor:
- platform: matrix_keypad
keypad_id: mykeypad
id: key4
row: 1
col: 0
- platform: matrix_keypad
id: keyA
key: A
  • keypad_id (可选, ID): 要从中处理按键的键盘的 ID。
  • id (可选, ID): 设置此按键的 ID,供在 lambda 中使用。
  • row (可选, integer): 按键所在的行。
  • col (可选, integer): 按键所在的列。
  • key (可选, string): 上面 keys 配置条目中的按键。
  • Binary Sensor 的所有其他选项。

必须提供 row 和 col 参数,或者 key 参数。

  • on_key (可选, Automation): 当某个按键被按下时执行的自动化。按键存放在名为 x 的变量中。

    NOTE

    可以通过 按键收集器 组件自动处理多个按键(例如 PIN 码输入)。