跳转到内容

MPR121 电容式触摸传感器

mpr121 传感器平台允许你在 ESPHome 中使用你的 MPR121 (数据手册, Adafruit) 电容式触摸传感器。此传感器要正常工作,需要在配置中 设置 I²C。

MPR121 电容式触摸传感器。图片由 Adafruit 提供。
# 示例配置条目
mpr121:
id: mpr121_component
address: 0x5A
touch_debounce: 1
release_debounce: 1
touch_threshold: 10
release_threshold: 7
binary_sensor:
- platform: mpr121
id: touch_key0
channel: 0
name: "Touch Key 0"
touch_threshold: 12
release_threshold: 6

配置由两部分组成:中心组件和每个通道单独的二进制传感器。

  • address(可选,int):传感器的 I²C 地址。默认为 0x5A。

  • id(可选,ID):设置此传感器的 ID。

  • touch_debounce(可选,int):识别触摸前的最小时长。范围为 0 到 7。 默认为 0。

  • release_debounce(可选,int):在创建释放事件之前,不识别触摸的最小时长。 范围为 0 到 7。默认为 0。

  • touch_threshold(可选,int):所有通道的触摸阈值。它定义了触摸检测的灵敏度 ,应在 5 到 30 之间(越低越灵敏)。默认为 12。通常触摸阈值略大于释放阈值。

  • release_threshold(可选,int):释放定义了触摸检测的灵敏度,应在 5 到 30 之间。默认为 6。

mpr121 二进制传感器允许你在 ESPHome 中使用你的 MPR121。 首先设置 组件/中心,然后使用此二进制传感器平台为每个触摸传感器创建单独的 二进制传感器。

配置变量:

  • mpr121_id(可选,ID):上面定义的 MPR121 的 ID。适用于 I²C 总线上有多个 MPR121 的情况
  • channel(必选,int):触摸按键所连接的 MPR121 的通道编号。
  • touch_threshold(可选,int):对全局 touch_threshold 值的每通道覆盖。如果未指定,则使用全局值。
  • release_threshold(可选,int):对全局 release_threshold 值的每通道覆盖。如果未指定,则使用全局值。
  • 来自 Binary Sensor 的所有其他选项。

mpr121 还支持将其触摸电极配置为 GPIO 输入和输出。为此, 请在 mpr121 组件的配置中指定一个 id。然后,在 mpr121 字段中使用此 ID 配置 GPIO 输出或 输入。

output:
- id: ext_5v_power
platform: gpio
pin:
mpr121: mpr121_component
number: 10
mode: OUTPUT
inverted: true

number 指的是 MPR121 芯片上的 ELEx 引脚编号。仅 ELE4 到 ELE11(含)可作为 GPIO 使用。

GPIO 和触摸功能可以同时使用,但不能在相同的引脚上。

当使用较高编号的引脚作为触摸 通道时,也不允许将引脚配置为 GPIO。这是因为触摸功能是配置为一个范围,从 ELE0 开始。 例如:

  • 将通道 2 和 5 用作触摸并将通道 6 用作 GPIO 是可以的
  • 将通道 2 和 5 用作触摸并将通道 4 用作 GPIO 是不可以的