esphome-docs/components/output/mcp4728.rst

100 lines
3.3 KiB
ReStructuredText

MCP4728 Component
=================
.. seo::
:description: Instructions for setting up MCP4728 outputs on the ESP.
:image: mcp4728.jpg
.. _mcp4728-component:
The MCP4728 output component allows to use `12bit external quad DAC
<https://www.adafruit.com/product/4470>`__
in order to have analog outputs on any board by using :ref:`I²C <i2c>`. Devices default address is ``0x60``.
.. code-block:: yaml
# Example configuration entry
# Set a global I²C connection
i2c:
sda: 21
scl: 22
scan: true
# Set the component with default (address: 0x60 / global I²C)
mcp4728:
- id: dac_output
Configuration variables:
------------------------
- **id** (*Optional*, :ref:`config-id`): The id to use for this output component.
- **address** (*Optional*, int): Manually specify the I2C address of
the DAC. Defaults to ``0x60``.
- **store_in_eeprom** (*Optional*, boolean): Use SEQ_WRITE mode to also write to EEPROM sequentially. Defaults to ``false``.
MCP4728 Output
**************
The MCP4728 output component exposes 4 MCP4728 channels of a global :ref:`MCP4728 <mcp4728-component>` as float outputs.
.. code-block:: yaml
# Individual outputs
output:
- platform: mcp4728
id: ac_dimmer_1
mcp4728_id: dac_output
channel: A
vref: vdd
power_down: normal # default
- platform: mcp4728
id: ac_dimmer_2
mcp4728_id: dac_output
channel: B
vref: vdd
power_down: gnd_1k
- platform: mcp4728
id: ac_dimmer_3
channel: C
vref: internal
gain: X1
power_down: normal # default
- platform: mcp4728
id: ac_dimmer_4
channel: D
vref: internal
gain: X2
on_...:
then:
- output.set_level:
id: ac_dimmer_1
level: 100%
Configuration variables:
------------------------
- **id** (**Required**, :ref:`config-id`): The id to use for this output component.
- **mcp4728_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the
:ref:`MCP4728 <mcp4728-component>`.
Use this if you have multiple MCP4728 chains you want to use at the same time.
- **channel** (**Required**, string): Chose the channel of the MCP4728 chain of
this output component. One of ``A``, ``B``, ``C`` or ``D``.
- **vref** (*Optional*, string): Chose the VREF source. One of ``vdd`` or ``internal``. Defaults to ``vdd``.
- **gain** (*Optional*, string): Chose the GAIN multiplier for internal VREF. One of ``X1`` or ``X2``. Only useful when ``vdd=internal``. Defaults to ``X1``.
- **power_down** (*Optional*, string): Chose the power down mode. In power down mode (value different from ``normal``) the output pin will be connected to GND using a resistor (1kOhm, 100kOhm or 500kOhm). One of ``normal``, ``gnd_1k``, ``gnd_100k`` or ``gnd_500k``. Defaults to ``normal``.
- All other options from :ref:`Output <config-output>`.
Output voltage range will be different depending on the ``vref`` source and ``gain``.
When ``vref=vdd``, output voltage will range from 0.000V to VDD.
When ``vref=internal``, output voltage will range from 0.000V to 2.048V with ``gain=X1`` and from 0.000V to 4.096V with ``gain=X2``.
See Also
--------
- :doc:`/components/output/index`
- :doc:`/components/output/esp32_dac`
- :apiref:`mcp4728/mcp4728.h`
- :ghedit:`Edit`