跳转到内容

PCA9685

PCA9685 组件代表 ESPHome 中的 PCA9685 12 位 PWM 驱动 (数据手册、 adafruit)。它 使用 I²C 总线 进行通信。

要使用此组件的通道,你首先需要设置 全局 pca9685 hub 并为其指定一个 id,然后定义 单独的输出通道。

# Example configuration entry
pca9685:
- id: pca9685_hub1
frequency: 500
# Individual outputs
output:
- platform: pca9685
pca9685_id: 'pca9685_hub1'
channel: 0
# Example configuration entry with external clock enable and clock source from ESP32
pca9685:
- id: pca9685_hub1
external_clock_input: true
# Individual outputs
output:
# 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_balancer
pca9685:
- id: pca9685_hub1
phase_balancer: none
# Individual outputs
output:
- 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 输出组件将全局 PCA9685 hub 的 PCA9685 PWM 通道作为浮点 输出暴露。

PCA9685 16 通道 PWM 驱动。
# Example configuration entry
pca9685:
- frequency: 500
# Individual outputs
output:
- 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