mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-12-28 17:48:35 +01:00
59 lines
1.8 KiB
ReStructuredText
59 lines
1.8 KiB
ReStructuredText
PCF8574 I/O Expander
|
|
====================
|
|
|
|
The PCF8574 component allows you to use PCF8574 or PCF8575 I/O expanders
|
|
(`datasheet <http://www.ti.com/lit/ds/symlink/pcf8574.pdf>`__,
|
|
`Sparkfun`_) in esphomeyaml. It
|
|
uses `I²C Bus </esphomeyaml/components/i2c.html>`__ for communication.
|
|
|
|
Once configured, you can use any of the 8 pins (PCF8574) or 16 pins (PCF8575) as
|
|
pins for your projects. Within esphomelib they emulate a real internal GPIO pin
|
|
and can therefore be used with many of esphomelib's components such as the GPIO
|
|
binary sensor or GPIO switch.
|
|
|
|
Any option accepting a `Pin Schema`_ can theoretically be used, but some more
|
|
complicated components that do communication through this I/O expander will
|
|
not work.
|
|
|
|
.. figure:: /esphomeyaml/components/pcf8574-full.jpg
|
|
:align: center
|
|
:target: `Sparkfun`_
|
|
:width: 50.0%
|
|
|
|
PCF8574 I/O Expander. Image by `Sparkfun`_.
|
|
|
|
.. _Sparkfun: https://www.sparkfun.com/products/retired/8130
|
|
|
|
.. code:: yaml
|
|
|
|
# Example configuration entry
|
|
pcf8574:
|
|
- id: 'pcf8574_hub'
|
|
address: 0x21
|
|
pcf8575: False
|
|
|
|
# Individual outputs
|
|
switch:
|
|
- platform: gpio
|
|
name: "PCF8574 Pin #0"
|
|
pin:
|
|
pcf8574: pcf8574_hub
|
|
# Use pin number 0
|
|
number: 0
|
|
# One of INPUT, INPUT_PULLUP or OUTPUT
|
|
mode: INPUT
|
|
inverted: False
|
|
|
|
Configuration variables:
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
- **id** (**Required**,
|
|
`id </esphomeyaml/configuration-types.html#id>`__): The id to use for
|
|
this PCF8574 component.
|
|
- **address** (*Optional*, int): The I²C address of the driver.
|
|
Defaults to ``0x21``.
|
|
- **pcf8575** (*Optional*, boolean): Whether this is a 16-pin PCF8575. Defaults to
|
|
``False``.
|
|
|
|
.. _Pin Schema: /esphomeyaml/configuration-types.html#pin-schema
|