跳转到内容

MCP230xx I/O 扩展器

Microchip MCP230xx 系列是用于 I²C 总线应用的通用并行 I/O 扩展器。

支持的变体:

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
number: 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 伏)。

  • mcp23xxx (必需, ID):MCP23008 组件的 ID。

  • interrupt (可选):将此引脚设置为触发组件上的 INT 引脚。可以是 CHANGERISINGFALLING 之一。

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

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

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

MCP23016 组件(数据手册) 有 16 个 GPIO,可以像其他变体一样进行配置。

NOTE

此设备不支持 ‘INPUT_PULLUP’ 模式。

# 示例配置条目
mcp23016:
- id: 'mcp23016_hub'
address: 0x20
# 单独输出
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
  • mcp23xxx (必需, ID):MCP23016 组件的 ID。
  • 所有其他选项来自 引脚模式

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 伏)。

  • mcp23xxx (必需, ID):MCP23017 组件的 ID。
  • interrupt (可选):将此引脚设置为触发端口上的 INT 引脚。可以是 CHANGERISINGFALLING 之一。
  • 所有其他选项来自 引脚模式