esphome-docs/components/sn74hc165.rst

71 lines
2.5 KiB
ReStructuredText

SN74HC165 I/O Expander (shift register)
=======================================
.. seo::
:description: Instructions for setting up SN74HC165 shift registers as digital port expanders in ESPHome.
The SN74HC165 component allows you to use SN74HC165 shift registers as I/O expanders (Input only, use SN74HC595 for outputs)
(`datasheet <https://www.ti.com/lit/ds/symlink/sn74hc165.pdf>`__) in ESPHome. It uses 3 wires (optionally 4) for communication.
Once configured, you can use any of the 8 pins for your projects. Up-to 256 shift registers can be daisy-chained
to provide more pins, without using more GPIO pins on the controller. They are linked by connecting pin Q of the closer
shift register to the pin QH of the next shift register.
The use of CLK INH pin is optional, as it can be directly connected to ground.
.. code-block:: yaml
# Example configuration entry
sn74hc165:
- id: sn74hc165_hub
clock_pin: GPIOXX
data_pin: GPIOXX
load_pin: GPIOXX
clock_inhibit_pin: GPIOXX
sr_count: 2
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The id to use for this SN74HC165 component.
- **data_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC165 Serial Output (QH) input.
- **clock_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC165 Clock (CLK) pin
- **load_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC165 Load input (SH/LD) pin
- **clock_inhibit_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC165 Clock Inhibit (CLK INH) pin
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up-to 256. Defaults to ``1``.
Pin configuration variables:
****************************
.. code-block:: yaml
# Individual inputs
binary_sensor:
- platform: gpio
name: "SN74HC165 Pin #0"
pin:
sn74hc165: sn74hc165_hub
# Use pin number 0
number: 0
inverted: false
- **sn74hc165** (**Required**, :ref:`config-id`): The id of the SN74HC165 component of the pin.
- **number** (**Required**, int): The pin number.
- **inverted** (*Optional*, boolean): If received value should be treated as inverted.
Defaults to ``false``.
.. note::
Pin number 0 is Pin A on the SN74HC165 that is furthest away from the microcontroller.
See Also
--------
- :doc:`binary_sensor/gpio`
- :apiref:`SN74HC165/SN74HC165.h`
- :ghedit:`Edit`