mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-11-01 08:39:52 +01:00
90 lines
3.3 KiB
ReStructuredText
90 lines
3.3 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 integration 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: GPIO15
|
|
reference_voltage: 3.3V
|
|
|
|
# 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.
|
|
update_interval: 1s
|
|
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.
|
|
update_interval: 1s
|
|
id: supply_voltage
|
|
number: 7 # MCP3208 pin number
|
|
|
|
|
|
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.
|
|
|
|
Configuration variables:
|
|
************************
|
|
|
|
- **mcp3204_id** (**Required**, :ref:`config-id`): The id of the parent MCP3204 component.
|
|
- **name** (**Required**, string): The name of the voltage sensor.
|
|
- **number** (**Required**, int): The pin number of the MCP3204
|
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.
|
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
|
- All other options from :ref:`Sensor <config-sensor>`.
|
|
|
|
See Also
|
|
--------
|
|
|
|
- :ref:`spi`
|
|
- :apiref:`mcp3204/mcp3204.h`
|
|
- :ghedit:`Edit`
|