跳转到内容

PCF8574 I/O 扩展器

PCF8574 组件允许你在 ESPHome 中使用 PCF8574 或 PCF8575 I/O 扩展器 (数据手册、 SparkFun)。它使用 I²C 总线 进行通信。

配置完成后,你可以在项目中使用 8 个引脚(PCF8574)或 16 个引脚(PCF8575)中的任意一个作为 引脚。在 ESPHome 中,它们模拟真实的内部 GPIO 引脚, 因此可以与 ESPHome 的许多组件一起使用,如 GPIO 二进制传感器或 GPIO 开关。

任何接受 Pin Schema 的选项原则上都可以使用,但某些 更复杂的、通过此 I/O 扩展器进行通信的组件将 无法工作。

PCF8574 I/O 扩展器。
# 示例配置条目
pcf8574:
- id: 'pcf8574_hub'
address: 0x21
pcf8575: false
# 单独的输出
switch:
- platform: gpio
name: "PCF8574 Pin #0"
pin:
pcf8574: pcf8574_hub
# 使用引脚号 0
number: 0
# 为 INPUT 或 OUTPUT 之一
mode:
output: true
inverted: false
  • id (必选, ID): 用于此 PCF8574 组件的 id。

  • address (可选, int): 驱动器的 I²C 地址。 默认为 0x21。

  • pcf8575 (可选, boolean): 是否为 16 引脚的 PCF8575。默认为 false。

  • interrupt_pin (可选, Pin Schema): 连接到 PCF8574/PCF8575 的 INT 输出的引脚。配置后,组件将变为中断驱动而非 轮询——它只在引脚实际改变状态时才读取芯片,从而显著减少 I²C 总线流量 和 CPU 占用。INT 引脚为低电平有效且为开漏,因此需要一个外部或内部上拉电阻。 必须是内部 GPIO 引脚(不能是另一个扩展器的引脚)。

NOTE

如果你使用 PCF8575,引脚号为 0 到 15,而不是数据手册中所述的 0 到 7 和 10 到 17!

  • pcf8574 (必选, ID): 引脚的 PCF8574 组件的 id。

  • number (必选, int): 引脚号。

  • inverted (可选, boolean): 所有读取和写入的值 是否应视为反转的。默认为 false。

  • mode (可选, string): 为此引脚设置的引脚模式。为 INPUT 或 OUTPUT 之一。