PCA9685 ======= .. seo:: :description: Instructions for setting up PCA9685 LED PWM drivers. :image: pca9685.jpg :keywords: PCA9685 .. _pca9685-component: Component/Hub ------------- The PCA9685 component represents a PCA9685 12-bit PWM driver (`datasheet `__, `adafruit `__) in ESPHome. It uses :ref:`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 :ref:`individual output channels `. .. code-block:: yaml # Example configuration entry pca9685: - id: pca9685_hub1 frequency: 500 # Individual outputs output: - platform: pca9685 pca9685_id: 'pca9685_hub1' channel: 0 .. code-block:: yaml # 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: ************************ - **frequency** (*Optional*, float): The frequency to let the component drive all PWM outputs at. Must be in range from 24Hz to 1525.88Hz. Default ``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*, :ref:`config-id`): The id to use for this pca9685 component. Use this if you have multiple PCA9685s connected at the same time .. _pca9685-output: PCA9685 Output -------------- The PCA9685 output component exposes a PCA9685 PWM channel of a global :ref:`PCA9685 hub ` as a float output. .. figure:: images/pca9685-full.jpg :align: center :width: 75.0% PCA9685 16-Channel PWM Driver. .. code-block:: yaml # Example configuration entry pca9685: - frequency: 500 # Individual outputs output: - platform: pca9685 id: 'pca9685_output1' channel: 0 Configuration variables: ************************ - **id** (**Required**, :ref:`config-id`): The id to use for this output component. - **channel** (**Required**, int): Chose the channel of the PCA9685 of this output component. Must be in range from 0 to 15. - **pca9685_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`PCA9685 hub `. Use this if you have multiple PCA9685s you want to use at the same time. - All other options from :ref:`Output `. Examples -------- This output can be used for different PWM functions. E.g. output for light, fan etc. .. code-block:: yaml pca9685: frequency: 500 output: - platform: pca9685 channel: 0 id: pwm01 light: - platform: monochromatic name: 'main light' output: pwm01 See Also -------- - :doc:`/components/output/index` - :doc:`/components/output/esp8266_pwm` - :doc:`/components/output/ledc` - :doc:`/components/light/monochromatic` - :doc:`/components/fan/speed` - :doc:`/components/power_supply` - :apiref:`pca9685/pca9685_output.h` - `PCA9685 Arduino Library `__ by `@NachtRaveVL `__ - :ghedit:`Edit`