PCA9685
组件/Hub
Section titled “组件/Hub”PCA9685 组件代表 ESPHome 中的 PCA9685 12 位 PWM 驱动 (数据手册、 adafruit)。它 使用 I²C 总线 进行通信。
要使用此组件的通道,你首先需要设置
全局 pca9685 hub 并为其指定一个 id,然后定义
单独的输出通道。
# Example configuration entrypca9685: - id: pca9685_hub1 frequency: 500
# Individual outputsoutput: - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0# Example configuration entry with external clock enable and clock source from ESP32pca9685: - id: pca9685_hub1 external_clock_input: true
# Individual outputsoutput: # generate PWM from ESP32 ledc - platform: ledc pin: GPIOXX id: extclk min_power: 1 frequency: 40MHz
- platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0# Example configuration entry with disabled phase_balancerpca9685: - id: pca9685_hub1 phase_balancer: none
# Individual outputsoutput: - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0 - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 1-
frequency (可选, frequency): 组件驱动 所有 PWM 输出的频率。值必须在
23.84Hz到1525.88Hz之间。默认为1kHz。 -
external_clock_input (可选, bool): 启用外部时钟输入。PRE_SCALE 寄存器将被设置为 3。默认为
false。 -
address (可选, int): 驱动的 I²C 地址。 默认为
0x40。 -
id (可选, ID): 用于 此 pca9685 组件的 id。如果你有多个 PCA9685 同时连接,请使用此选项
-
phase_balancer (可选, string): 要使用的相位平衡算法。 请参见下面的 相位平衡器。
PCA9685 允许为每个输出设置不同的相位角。可以使用以下算法 设置每个输出的相位角:
linear(默认):相位角通过将所有已定义的输出在 360° 中均匀分布来设置。 因此,对于 3 个输出,第一个为 0°,第二个为 120°,最后一个为 240°。此算法在 灯光动画时可能会导致闪烁,因为如果起始角度大于停止角度,PCA9685 芯片需要额外的帧 (不产生 PWM)。none:相位角始终为 0°。如果你控制 LED 灯,这是更安全的选择。
PCA9685 输出
Section titled “PCA9685 输出”PCA9685 输出组件将全局 PCA9685 hub 的 PCA9685 PWM 通道作为浮点 输出暴露。

# Example configuration entrypca9685: - frequency: 500
# Individual outputsoutput: - platform: pca9685 id: 'pca9685_output1' channel: 0-
id (必需, ID): 用于此输出组件的 id。
-
channel (必需, int): 选择此输出组件的 PCA9685 通道。 值必须在 0 到 15 之间。
-
pca9685_id (可选, ID): 手动指定 PCA9685 hub 的 ID。 如果你有多个 PCA9685 并希望同时使用,请使用此选项。
-
所有其他选项请参见 输出。
此输出可用于不同的 PWM 功能。例如灯光、风扇等输出。
pca9685: frequency: 500
output: - platform: pca9685 channel: 0 id: pwm01
light: - platform: monochromatic name: 'main light' output: pwm01