Skip to main content

PCF8574 driver to set pin mode, read and write digital signal 3.3v

Project description

Python driver for PCF8574 8bit IO Expander board

Developed for the Raspberry Pi, requires python-smbus2 package to access the I2C bus.

Tested on raspberry pi 3b plus with two PCF8574 boards.

First install smbus2 using: pip3 install smbus2

then install the actual package using: pip3 install pcf8574-io

Usage Example:

import pcf8574_io

# You can use up to 8 PCF8574 boards
# the board will start in input mode
# the pins are HIGH in input mode
p1 = pcf8574_io.PCF(0x20)

# You can use multiple boards with different addresses
#p2 = pcf8574_io.PCF(0x21)

# p0 to p7 are the pins name
# INPUT or OUTPUT is the mode
p1.pin_mode("p0", "INPUT")
print(p1.read("p0"))

# You can write and read the output pins
# use HIGH or LOW to set the pin, HIGH is +3.3v LOW is 0v
p1.pin_mode("p7", "OUTPUT")
p1.write("p7", "LOW")
print(p1.read("p7"))

# Additional you can do the following
p1.set_i2cBus(1)
p1.get_i2cBus()
print(p1.get_pin_mode("p7")) # returns string OUTPUT, INPUT
print(p1.is_pin_output("p7")) # returns boolean True, False
print(p1.get_all_mode()) # returns list of all pins ["OUTPUT","INPUT",...etc]

Note: the board has only 25mA output current so if you want to control some relay modules, that need more than 25mA use more than one pin to control each relay.

The board been used: alt text

#Link https://pypi.org/project/pcf8574-io/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pcf8574_io-0.1.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

pcf8574_io-0.1.1-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file pcf8574_io-0.1.1.tar.gz.

File metadata

  • Download URL: pcf8574_io-0.1.1.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.7

File hashes

Hashes for pcf8574_io-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cc6f88b2deaa589a28a3748b6b2ca4212d0707d67685f9a0ed4221037e9c9fe9
MD5 d1f5afe039a4696f2147d113d4064b49
BLAKE2b-256 35267a0b7fd47a46b03cfc9d419bf7be8d50dcf7b0f2f46a0d0231826d63c4b4

See more details on using hashes here.

File details

Details for the file pcf8574_io-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pcf8574_io-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.7

File hashes

Hashes for pcf8574_io-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 117126d8671fad811259d2d53211c8e2bae612254996e8acc7c8ffae5d040311
MD5 2b2f7ea85d688a2cbdd352ada7c9e141
BLAKE2b-256 ee1158b2c5d2ba38aa713c4294dc62aaab7795fa6eb7f1b45f29c8a5201ea357

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page