esphome-docs/components/sensor/mcp3204.rst

86 lines
3.1 KiB
ReStructuredText

MCP3204 & MCP3208 12-Bit A/D Converters
=======================================
.. seo::
:description: Instructions for setting up MCP3204 & MCP3208 12-Bit Analog to Digital Converter in ESPHome.
:keywords: MCP3204 MCP3208
:image: mcp3204.jpg
The Microchip Technology Inc. MCP3204 & MCP3208 devices are successive approximation 12-bit Analog-to-Digital (A/D)
converters with on-board sample and hold circuitry. This component is common for both device types.
Configure both devices as MCP3204 and observe the maximum number of channels as per variant used.
.. figure:: images/mcp3204.jpg
:align: center
:width: 50.0%
.. _mcp3204-component:
Component/Hub
-------------
The MCP3204 component allows you to use MCP3204 or MCP3208 12-Bit A/D Converter
(`datasheet <https://ww1.microchip.com/downloads/en/DeviceDoc/21298e.pdf>`__) in ESPHome.
The MCP3204 is a 4-channel and MCP3208 is an 8-channel device.
It uses the :ref:`SPI Bus <spi>` for communication.
Once configured, you can use any of the 4 or 8 pins (depending on device variant) as
sensors for your projects.
Each pin will respond with a voltage calculated off of the ``reference_voltage`` (default is 3.3V).
It calculates the voltage by multiplying the ``reference_voltage * value`` on the pin (basically the percentage of VREF)
Most configurations will set the ``reference_voltage`` = VREF pin
.. code-block:: yaml
# Example configuration entry
mcp3204:
cs_pin: GPIOXX
reference_voltage: 3.3V
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The id to use for this MCP3204 component.
- **cs_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The SPI cable select pin to use.
- **reference_voltage** (*Optional*, float): The reference voltage. Defaults to ``3.3V``.
Sensor
------
The ``mcp3204`` sensor allows you to use your MCP3204 or MCP3208 12-Bit A/D Converter sensors with ESPHome.
First, setup a :ref:`MCP3204 Hub <mcp3204-component>` for your MCP3204/8 sensor and then use this
sensor platform to create individual sensors that will report the voltage to Home Assistant.
.. code-block:: yaml
# Example config of sensors.
# This is a small 1.5v solar panel power rail attached to pin 0
# of the MCP3204
sensor:
- platform: mcp3204 # Attached to pin 0 of the MCP3204.
id: solar_voltage
number: 0 # MCP3204 pin number
# In case MCP3208 is used. you can specify pin number > 4
- platform: mcp3204 # Attached to pin 7 of the MCP3208.
id: supply_voltage
number: 7 # MCP3208 pin number
Configuration variables:
************************
- **mcp3204_id** (**Required**, :ref:`config-id`): The id of the parent MCP3204 component.
- **number** (**Required**, int): The pin number of the MCP3204
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
- All other options from :ref:`Sensor <config-sensor>`.
See Also
--------
- :ref:`spi`
- :apiref:`mcp3204/mcp3204.h`
- :ghedit:`Edit`