diff --git a/components/i2c.rst b/components/i2c.rst index a4fe7a4df7..96e73549b6 100644 --- a/components/i2c.rst +++ b/components/i2c.rst @@ -64,11 +64,12 @@ Configuration variables: address: 0x76 # ... -For I2C multiplexing see :doc:`/components/tca9548a`. +For I²C multiplexing see :doc:`/components/tca9548a`. See Also -------- - :doc:`/components/tca9548a` +- :doc:`/components/i2c_device` - :apiref:`i2c/i2c.h` - :ghedit:`Edit` diff --git a/components/i2c_device.rst b/components/i2c_device.rst new file mode 100644 index 0000000000..c51c0c158e --- /dev/null +++ b/components/i2c_device.rst @@ -0,0 +1,37 @@ +Generic I²C device component: +----------------------------- +.. _i2c_device: + +General-purpose I²C device component that can be used to communicate with hardware not supported by a specific component. It allows selection of the I²C address. Reads and writes on the device can be performed with lambdas. For example: + +.. code-block:: yaml + + i2c: + sda: 4 + scl: 5 + scan: True + + i2c_device: + id: i2cdev + address: 0x2C + + on...: + then: + - lambda: !lambda |- + id(i2cdev).write_byte(0x00, 0x12); + if (auto b = id(i2cdev).read_byte(0x01)) { + // TODO + } + + +Configuration variables: +------------------------ + +- **address** (*Required*, int): I²C address of the device. + +See Also +-------- + +- :doc:`/components/i2c` +- :apiref:`i2c_device/i2c_device.h` +- :ghedit:`Edit`