PCA9685

Component/Hub Copy link to header

The PCA9685 component represents a PCA9685 12-bit PWM driver (datasheetExternal link, adafruitExternal link) in ESPHome. It uses I²C Bus for communication.

To use the channels of this components, you first need to setup the global pca9685 hub and give it an id, and then define the individual output channels.

# 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

Configuration variables: Copy link to header

  • frequency (Optional, float): The frequency to let the component drive all PWM outputs at. Must be in range from 24Hz to 1525.88Hz. Defaults to 1000Hz.
  • external_clock_input (Optional, bool): Enable external clock input. PRE_SCALE register will by set to 3. Default to false.
  • address (Optional, int): The I²C address of the driver. Defaults to 0x40.
  • id (Optional, ID): The id to use for this pca9685 component. Use this if you have multiple PCA9685s connected at the same time

PCA9685 Output Copy link to header

The PCA9685 output component exposes a PCA9685 PWM channel of a global PCA9685 hub as a float output.

# Example configuration entry
pca9685:
  - frequency: 500

# Individual outputs
output:
  - platform: pca9685
    id: 'pca9685_output1'
    channel: 0

Configuration variables: Copy link to header

  • id (Required, ID): The id to use for this output component.
  • channel (Required, int): Choose the channel of the PCA9685 of this output component. Must be in range from 0 to 15.
  • pca9685_id (Optional, ID): Manually specify the ID of the PCA9685 hub. Use this if you have multiple PCA9685s you want to use at the same time.
  • All other options from Output.

Examples Copy link to header

This output can be used for different PWM functions. E.g. output for light, fan etc.

pca9685:
  frequency: 500

output:
  - platform: pca9685
    channel: 0
    id: pwm01

light:
  - platform: monochromatic
    name: 'main light'
    output: pwm01

See Also Copy link to header

CURRENT