MCP230xx I/O 扩展器
Microchip MCP230xx 系列是适用于 I²C 总线应用的通用并行 I/O 扩展器件。
支持的变体:
MCP23008 组件
Section titled “MCP23008 组件”MCP23008 组件(数据手册、 Adafruit)具有 8 个可独立配置的 GPIO。
# 示例配置条目mcp23008: - id: 'mcp23008_hub' address: 0x20
# 单独的输出switch: - platform: gpio name: "MCP23008 Pin #0" pin: mcp23xxx: mcp23008_hub # 使用引脚号 0 number: 0 mode: output: true inverted: false
# 单独的输入binary_sensor: - platform: gpio name: "MCP23008 Pin #1" pin: mcp23xxx: mcp23008_hub # 使用引脚号 1 # 为 INPUT 或 INPUT_PULLUP 之一 mode: input: true inverted: false-
id (必选, ID): 用于此 MCP23008 组件的 id。
-
address (可选, int): 驱动器的 I²C 地址。 默认为
0x20。 -
open_drain_interrupt (可选, boolean): 将中断引脚配置为开漏模式。 当 MCP23008 的电源电压大于 3.3 伏特时很有用。请注意,启用此模式后,此引脚 需要一个上拉电阻(到 3.3 伏特)。
-
interrupt_pin (可选, Pin Schema): 连接到 MCP23008 的 INT 输出的引脚。配置后,组件将变为中断驱动而非 轮询——它只在引脚实际改变状态时才读取芯片,从而显著减少 I²C 总线流量 和 CPU 占用。必须是内部 GPIO 引脚(不能是另一个扩展器的引脚)。
引脚配置变量
Section titled “引脚配置变量”-
mcp23xxx (必选, ID): MCP23008 组件的 id。
-
interrupt (可选): 将此引脚设置为触发组件上的 INT 引脚。可以是
CHANGE、RISING、FALLING之一。 -
number (必选, int): 引脚号。
-
inverted (可选, boolean): 所有读取和写入的值 是否应视为反转的。默认为
false。 -
mode (可选, string): 为此引脚设置的引脚模式。为
INPUT或OUTPUT之一。
MCP23016 组件
Section titled “MCP23016 组件”MCP23016 组件(数据手册) 具有 16 个 GPIO,可以与其他变体相同的方式进行配置。
NOTE
此设备不支持 ‘INPUT_PULLUP’ 模式。
# 示例配置条目mcp23016: - id: 'mcp23016_hub' address: 0x20 interrupt_pin: GPIOXX
# 单独的输出switch: - platform: gpio name: "MCP23016 Pin #0" pin: mcp23016: mcp23016_hub # 使用引脚号 0 number: 0 mode: output: true inverted: false
# 单独的输入binary_sensor: - platform: gpio name: "MCP23016 Pin #1" pin: mcp23016: mcp23016_hub # 使用引脚号 1 number: 1 mode: input: true inverted: false- id (必选, ID): 用于此 MCP23016 组件的 id。
- address (可选, int): 驱动器的 I²C 地址。
默认为
0x20。 - interrupt_pin (可选, Pin Schema): 连接到 MCP23016 的 INT 输出的引脚。配置后,组件将变为中断驱动而非 轮询——它只在引脚实际改变状态时才读取芯片,从而显著减少 I²C 总线流量 和 CPU 占用。INT 引脚为低电平有效且为开漏,因此需要一个外部或内部上拉电阻。 必须是内部 GPIO 引脚(不能是另一个扩展器的引脚)。
引脚配置变量
Section titled “引脚配置变量”- mcp23xxx (必选, ID): MCP23016 组件的 id。
- Pin Schema 的所有其他选项。
MCP23017 组件
Section titled “MCP23017 组件”MCP23017 组件允许你在 ESPHome 中使用 MCP23017 I/O 扩展器 (数据手册、 Adafruit)。 它使用 I²C 总线进行通信。
配置完成后,你可以将 16 个引脚中的任意一个用作 项目的引脚。在 ESPHome 中,它们模拟真实的内部 GPIO 引脚, 因此可以与 ESPHome 的许多组件一起使用,例如 GPIO 二进制传感器或 GPIO 开关。
数据手册中的 GPIO 引脚标注为 A0 至 A7 和 B0 至 B7,本组件将这些引脚 依次映射为 0 至 15 的编号。
# 示例配置条目mcp23017: - id: 'mcp23017_hub' address: 0x20
# 单独的输出switch: - platform: gpio name: "MCP23017 Pin A0" pin: mcp23xxx: mcp23017_hub # 使用引脚 A0 number: 0 mode: output: true inverted: false
# 单独的输入binary_sensor: - platform: gpio name: "MCP23017 Pin B7" pin: mcp23xxx: mcp23017_hub # 使用引脚 B7 number: 15 # 为 INPUT 或 INPUT_PULLUP 之一 mode: input: true pullup: true inverted: false-
id (必选, ID): 用于此 MCP23017 组件的 id。
-
address (可选, int): 驱动器的 I²C 地址。 默认为
0x20。 -
open_drain_interrupt (可选, boolean): 将中断引脚配置为开漏模式。 当 MCP23017 的电源电压大于 3.3 伏特时很有用。请注意,启用此模式后,这些引脚 需要上拉电阻(到 3.3 伏特)。
-
interrupt_pin (可选, Pin Schema): 连接到 MCP23017 的 INTA 或 INTB 输出的引脚。配置后,组件将变为中断驱动而非 轮询——它只在引脚实际改变状态时才读取芯片,从而显著减少 I²C 总线流量 和 CPU 占用。必须是内部 GPIO 引脚(不能是另一个扩展器的引脚)。
引脚配置变量
Section titled “引脚配置变量”- mcp23xxx (必选, ID): MCP23017 组件的 id。
- interrupt (可选): 将此引脚设置为触发组件上的端口 INT 引脚。可以是
CHANGE、RISING、FALLING之一。 - Pin Schema 的所有其他选项。