Add cd74hc4067 docs (#1503)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Co-authored-by: asoehlke <git@soehlke.de>
This commit is contained in:
parent
b8427a1632
commit
37d3019ddb
|
@ -0,0 +1,118 @@
|
|||
cd74hc4067 Analog Multiplexer
|
||||
=============================
|
||||
|
||||
.. seo::
|
||||
:description: Instructions for setting up cd74hc4067 Analog Multiplexer and sensors.
|
||||
:image: cd74hc4067.jpg
|
||||
|
||||
|
||||
The ``cd74hc4067`` Analog Multiplexer component allows you to attach up to 16 analog input sensors to a single ADC pin.
|
||||
The component is used to activate the right multiplexer pin for each of the defined cd74hc4067 sensors.
|
||||
|
||||
For further information about the cd74hc4067 chip see the `spec sheet <https://www.ti.com/lit/ds/symlink/cd74hc4067.pdf>`__
|
||||
and there are also some guides around like the one from `Adam Meyer <http://adam-meyer.com/arduino/CD74HC4067>`__.
|
||||
|
||||
Actually, the chip is bidirectional and could also be used as output, but this is not supported by the component yet.
|
||||
|
||||
First, you need to configure the component with the digital pins that control the multiplexer.
|
||||
Then you need to set up a voltage sensor source (e.g. :doc:`ADC sensor <adc>`) and pass it to the cd74hc4067 sensors with the ``sensor`` option.
|
||||
Each cd74hc4067 sensor is configured for one of the 16 input pins of the multiplexer.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# Example configuration entry
|
||||
cd74hc4067:
|
||||
pin_s0: D0
|
||||
pin_s1: D1
|
||||
pin_s2: D2
|
||||
pin_s3: D3
|
||||
|
||||
sensor:
|
||||
- platform: adc
|
||||
id: adc_sensor
|
||||
pin: A0
|
||||
- platform: cd74hc4067
|
||||
id: adc_0
|
||||
number: 0
|
||||
sensor: adc_sensor
|
||||
- platform: cd74hc4067
|
||||
id: adc_1
|
||||
number: 1
|
||||
sensor: adc_sensor
|
||||
|
||||
Component/Hub
|
||||
-------------
|
||||
|
||||
Configuration Variables:
|
||||
************************
|
||||
|
||||
- **pin_s0** to **pin_s3** (**Required**, :ref:`config-pin`): The I/O pins connected to the S0 to S3 channel selection pins
|
||||
- **delay** (*Optional*, :ref:`config-time`): A small delay duration needed for the chip to switch inputs, defaults to 2ms.
|
||||
|
||||
Sensor
|
||||
------
|
||||
|
||||
Configuration Variables:
|
||||
************************
|
||||
|
||||
- **sensor** (**Required**, :ref:`config-id`): The source sensor to measure voltage values from, e.g. :doc:`ADC sensor <adc>`.
|
||||
- **number** (*Required*, int): The number of the cd74hc4067 input pin (0-15)
|
||||
- All other options from :ref:`Sensor <config-sensor>`.
|
||||
|
||||
Application Example
|
||||
-------------------
|
||||
|
||||
In this example, the component is used to measure the AC power output of two solar inverters to integrate them
|
||||
as energy sources in `Home Assistant <https://www.home-assistant.io/docs/energy/solar-panels/>`__.
|
||||
|
||||
For this purpose, :doc:`CT clamp sensors <ct_clamp>` are attached on each of the sensors.
|
||||
Filters are needed to calibrate the output and cut off the noise of near-zero values.
|
||||
The ``adc`` and ``cd74hc4067`` sensors updates are triggered by the ``ct_clamp`` sensors and have a very high internal update frequency.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
cd74hc4067:
|
||||
pin_s0: D0
|
||||
pin_s1: D1
|
||||
pin_s2: D2
|
||||
pin_s3: D3
|
||||
|
||||
sensor:
|
||||
- platform: adc
|
||||
id: adc_sensor
|
||||
pin: A0
|
||||
update_interval: 3600s
|
||||
- platform: cd74hc4067
|
||||
id: solar_1_raw
|
||||
number: 0
|
||||
sensor: adc_sensor
|
||||
update_interval: 3600s
|
||||
- platform: cd74hc4067
|
||||
id: solar_2_raw
|
||||
number: 1
|
||||
sensor: adc_sensor
|
||||
update_interval: 3600s
|
||||
- platform: ct_clamp
|
||||
name: "SolarPower1"
|
||||
sensor: solar_1_raw
|
||||
update_interval: 5s
|
||||
unit_of_measurement: "W"
|
||||
device_class: "power"
|
||||
filters:
|
||||
- lambda: "return x > 0.001 ? x * 56221 : 0;"
|
||||
- platform: ct_clamp
|
||||
name: "SolarPower2"
|
||||
sensor: solar_2_raw
|
||||
update_interval: 5s
|
||||
unit_of_measurement: "W"
|
||||
device_class: "power"
|
||||
filters:
|
||||
- lambda: "return x > 0.001 ? x * 57519 : 0;"
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
- :doc:`adc`
|
||||
- :doc:`ads1115`
|
||||
- :doc:`ct_clamp`
|
||||
- :ghedit:`Edit`
|
Binary file not shown.
After Width: | Height: | Size: 119 KiB |
|
@ -195,6 +195,7 @@ Analogue
|
|||
|
||||
ADC, components/sensor/adc, flash.svg, ESP internal
|
||||
ADS1115, components/sensor/ads1115, ads1115.jpg, 4-channel ADC
|
||||
CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg, 16-channel analog multiplexer
|
||||
MCP3008, components/sensor/mcp3008, mcp3008.jpg, 8-channel ADC
|
||||
MCP3204, components/sensor/mcp3204, mcp3204.jpg, 4-channel ADC
|
||||
Resistance, components/sensor/resistance, omega.svg
|
||||
|
|
Loading…
Reference in New Issue