From caf969865f3757cb96aee75a1b055ccc28d012e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Stenberg?= Date: Sun, 24 Nov 2024 16:58:43 +0100 Subject: [PATCH] Add docs for MCP3201 --- components/sensor/images/mcp3201.jpg | Bin 0 -> 7215 bytes components/sensor/mcp3201.rst | 74 +++++++++++++++++++++++++++ images/mcp3201.jpg | Bin 0 -> 7215 bytes 3 files changed, 74 insertions(+) create mode 100644 components/sensor/images/mcp3201.jpg create mode 100644 components/sensor/mcp3201.rst create mode 100644 images/mcp3201.jpg diff --git a/components/sensor/images/mcp3201.jpg b/components/sensor/images/mcp3201.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb9d74559d86b66e4e7c7c2223c98bd834be6aba GIT binary patch literal 7215 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 bL7R^_#vA|$_%f7J_y1~N{kvY_&+NYe`__) in ESPHome. +The MCP3201 uses the :ref:`SPI Bus ` for communication. + +It reports voltage in relation to 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 + mcp3201: + cs_pin: GPIOXX + reference_voltage: 3.3V + +Configuration variables: +************************ + +- **cs_pin** (**Required**, :ref:`Pin Schema `): The SPI cable select pin to use. +- **reference_voltage** (*Optional*, float): The reference voltage. Defaults to ``3.3V``. + + +Sensor +------ + +The ``mcp3201`` sensor allows you to use your MCP3201 12-Bit A/D Converter +sensor with ESPHome. First, configure the `mcp3210` component and then +create a `sensor` using the `mcp3201` platform to report the voltage to +Home Assistant. + +.. code-block:: yaml + + # Example config + # This is a small 1.5v solar panel power rail attached to the MCP3201 + sensor: + - platform: mcp3201 + id: solar_voltage + update_interval: 30s + + +Configuration variables: +************************ + +- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. +- All other options from :ref:`Sensor `. + +See Also +-------- + +- :ref:`spi` +- :apiref:`mcp3201/mcp3201.h` +- :ghedit:`Edit` diff --git a/images/mcp3201.jpg b/images/mcp3201.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bb9d74559d86b66e4e7c7c2223c98bd834be6aba GIT binary patch literal 7215 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 bL7R^_#vA|$_%f7J_y1~N{kvY_&+NYe