Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Der PCA9536 ist ein 8-Pin-CMOS-Baustein, der 4 Bits an paralleler Universal-Ein-/Ausgabe-Erweiterung (GPIO) für I2C-Bus/SMBus-Anwendungen bereitstellt. Es besteht aus einem 4-Bit-Konfigurationsregister, das der Auswahl des Eingangs oder Ausgangs dient, einem 4-Bit-Eingangsport-Register, einem 4-Bit-Ausgangsport-Register und einem 4-Bit-Polaritätsumkehrregister für aktive HIGH- oder aktive LOW-Operation. Hier ist seine Demonstration mit dem Himbeer-Pi mit Python-Code.
Schritt 1: Was Sie brauchen.
1. Himbeer-Pi
2. PCA9536
3. I²C-Kabel
4. I²C-Shield für Raspberry Pi
5. Ethernet-Kabel
Schritt 2: Anschlüsse:
Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem PCA9536-Sensor und das andere Ende mit der I2C-Abschirmung.
Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.
Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code:
Der Python-Code für PCA9536 kann von unserem Github-Repository – DCUBE Store – heruntergeladen werden.
Hier ist der Link
Wir haben die SMBus-Bibliothek für Python-Code verwendet, die Schritte zur Installation von SMBus auf Raspberry Pi sind hier beschrieben:
pypi.python.org/pypi/smbus-cffi/0.5.1
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
# Wird mit freier Lizenz verteilt.
# Verwenden Sie es nach Belieben, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
# PCA9536
# Dieser Code wurde entwickelt, um mit dem PCA9536_I2CIO I2C Mini-Modul zu arbeiten #
smbus importieren
Importzeit
# Holen Sie sich den I2C-Bus
bus = smbus. SMBus(1)
# PCA9536-Adresse, 0x41(65)
# Konfigurationsregister auswählen, 0x03(03)
# 0xFF(255) Alle Pins als Eingänge konfiguriert
bus.write_byte_data(0x41, 0x03, 0xFF)
# Ausgabe auf dem Bildschirm
print "All Pins State are HIGH"
time.sleep(0.5)
# PCA9536-Adresse, 0x41(65)
# Daten zurücklesen von 0x00(00), 1 Byte
data = bus.read_byte_data(0x41, 0x00)
# Konvertieren Sie die Daten in 4-Bit
Daten = (Daten & 0x0F)
für i im Bereich (0, 4):
if (Daten & (2 ** i)) == 0:
print "I/O Pin %d Status ist LOW" %i
anders:
print "I/O Pin %d Status ist HIGH" %i
time.sleep(0.5)
Schritt 4: Anwendungen:
PCA9536 kann als E/A-Erweiterung verwendet werden. Es bietet eine einfache Lösung, wenn zusätzliche Eingabe/Ausgabe erforderlich ist. Normalerweise wird es in Systemen verwendet, die eine Erweiterung für ACPI-Leistungsschalter, Sensoren, Taster, LEDs, Lüfter usw. erfordern.