跳转到内容

矩阵键盘

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_collectorbinary_sensor(如果使用按键选择)需要此参数。

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

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

单个按键可以作为 binary_sensor 独立添加到 ESPHome:

# 示例配置条目
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 配置条目中的按键。
  • 所有其他选项来自 二值传感器

必须提供 rowcol 参数,或者 key 参数。

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

    NOTE

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