MCP4461 组件
MCP4461 输出组件通过 I²C 启用 8 位外部四数字电位器/变阻器的使用。更多信息请参见 MCP4461 数据手册。
# 示例配置条目mcp4461: - id: mcp4461_output-
id (可选, ID):此输出组件使用的 id。
-
address (可选, 整数):手动指定数字电位器的 I2C 地址。 默认为
0x2C。 -
disable_wiper_0 (可选, 布尔值):禁用抽头 0。默认为
false。 -
disable_wiper_1 (可选, 布尔值):禁用抽头 1。默认为
false。 -
disable_wiper_2 (可选, 布尔值):禁用抽头 2。默认为
false。 -
disable_wiper_3 (可选, 布尔值):禁用抽头 3。默认为
false。
MCP4461 输出
Section titled “MCP4461 输出”MCP4461 输出组件将全局 MCP4461 的 8 个 MCP4461(抽头)通道作为浮点输出暴露。
# 单个输出# A-D 是易失性抽头 0-3# E-H 是非易失性抽头 0-3# (AE, BF, CG, DH 属于同一组)output:- platform: mcp4461 id: digipot_channel_0 mcp4461_id: mcp4461_output channel: A initial_value: 0.5 # 始终在启动时用中等电阻范围的抽头初始化易失性抽头 0- platform: mcp4461 id: digipot_channel_1 mcp4461_id: mcp4461_output channel: B- platform: mcp4461 id: digipot_channel_2 mcp4461_id: mcp4461_output channel: C- platform: mcp4461 id: digipot_channel_3 mcp4461_id: mcp4461_output channel: D- platform: mcp4461 id: digipot_channel_4 mcp4461_id: mcp4461_output channel: E- platform: mcp4461 id: digipot_channel_5 mcp4461_id: mcp4461_output channel: F- platform: mcp4461 id: digipot_channel_6 mcp4461_id: mcp4461_output channel: G- platform: mcp4461 id: digipot_channel_7 mcp4461_id: mcp4461_output channel: H-
id (必填, ID):此输出组件使用的 id。
-
mcp4461_id (可选, ID):手动指定 MCP4461的 ID。 如果您想同时使用多个 MCP4461 IC,请使用此选项。
-
channel (*必填, 字符串):选择此 MCP4461 输出组件的通道。
A、B、C、D、E、F、G或H之一。 -
initial_value (可选, 浮点数):设置初始抽头值,有效范围为
0 - 1.0 -
terminal_a (可选, 布尔值):如果端子 “A” 应在启动时禁用,则设置为
false。默认为true -
terminal_b (可选, 布尔值):如果端子 “B” 应在启动时禁用,则设置为
false。默认为true -
terminal_w (可选, 布尔值):如果端子 “W” 应在启动时禁用,则设置为
false。默认为true -
所有其他配置变量来自 Output。
7 位和 8 位数字电位器/变阻器设备的抽头数通常为 100/257。
对于 MCP4461,0 - 1.0 范围内的有效输出状态将在内部乘以 256 以获得 [0-256] 范围内的整数抽头计数。
NOTE
如果您没有指定 initial_value 配置变量,您可以使用 read_state() 和 update_state() 在启动时获取当前状态。电位器(非变阻器)可以用相同方式处理。见下面的示例。
esphome: on_boot: priority: 100 then: - number.set: id: digipot_volatile_0 value: !lambda |- uint16_t wiper_level = id(digipot_wiper_0).read_state(); return wiper_level;
- lambda: |- id(digipot_wiper_0).update_state();