PCA9685
组件/集线器
Section titled “组件/集线器”PCA9685 组件代表 ESPHome 中的 PCA9685 12 位 PWM 驱动器 (数据手册, Adafruit)。它使用 I²C 总线进行通信。
要使用此组件的通道,您首先需要设置全局 pca9685 集线器并为其指定 id,然后定义单个输出通道。
# 示例配置条目pca9685: - id: pca9685_hub1 frequency: 500
# 单个输出output: - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0# 示例配置条目,启用外部时钟并使用 ESP32 的时钟源pca9685: - id: pca9685_hub1 external_clock_input: true
# 单个输出output: # 从 ESP32 ledc 生成 PWM - platform: ledc pin: GPIOXX id: extclk min_power: 1 frequency: 40MHz
- platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0# 示例配置条目,禁用 phase_balancerpca9685: - id: pca9685_hub1 phase_balancer: none
# 单个输出output: - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0 - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 1-
frequency (可选, 频率):组件驱动所有 PWM 输出的频率。 必须在
23.84Hz到1525.88Hz范围内。默认为1kHz。 -
external_clock_input (可选, 布尔值):启用外部时钟输入。PRE_SCALE 寄存器将被设置为 3。默认为
false。 -
address (可选, 整数):驱动器的 I²C 地址。 默认为
0x40。 -
id (可选, ID):此 pca9685 组件使用的 id。 如果您同时连接了多个 PCA9685,请使用此选项
-
phase_balancer (可选, 字符串):要使用的相位均衡算法。 见下方的 相位均衡器。
PCA9685 允许在每个输出上设置不同的相角。可以使用以下算法 来设置每个输出的相角:
linear(默认):相角通过将所有定义的输出均匀分布在 360° 范围内来设置。 因此,对于 3 个输出,第一个为 0°,第二个为 120°,最后一个为 240°。此算法在灯光动画时可能导致闪烁, 因为如果起始角度高于停止角度,PCA9685 芯片需要额外一帧不生成 PWM。none:相角始终为 0°。如果您控制 LED 灯,这是更安全的选择。
PCA9685 输出
Section titled “PCA9685 输出”PCA9685 输出组件将全局 PCA9685 集线器的 PCA9685 PWM 通道作为浮点输出暴露。
# 示例配置条目pca9685: - frequency: 500
# 单个输出output: - platform: pca9685 id: 'pca9685_output1' channel: 0-
id (必填, ID):此输出组件使用的 id。
-
channel (*必填, 整数):选择此输出组件的 PCA9685 通道。 必须在 0 到 15 范围内。
-
pca9685_id (可选, ID):手动指定 PCA9685 集线器的 ID。 如果您想同时使用多个 PCA9685,请使用此选项。
-
所有其他选项来自 Output。
此输出可用于不同的 PWM 功能。例如灯光、风扇等的输出。
pca9685: frequency: 500
output: - platform: pca9685 channel: 0 id: pwm01
light: - platform: monochromatic name: 'main light' output: pwm01