Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
De PCA9536 is een 8-pins CMOS-apparaat dat 4 bits General Purpose parallelle Input/Output (GPIO)-uitbreiding biedt voor I2C-bus/SMBus-toepassingen. Het bestaat uit een 4-bits configuratieregister om de invoer- of uitvoerselectie te dienen, een 4-bits invoerpoortregister, een 4-bits uitvoerpoortregister en een 4-bit polariteitsinversieregister actief HOOG of actief LAAG. Hier is de demonstratie met de raspberry pi met behulp van python-code.
Stap 1: Wat je nodig hebt.
1. Raspberry Pi
2. PCA9536
3. I²C-kabel
4. I²C-schild voor Raspberry Pi
5. Ethernet-kabel
Stap 2: Aansluitingen:
Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.
Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de PCA9536-sensor en het andere uiteinde op de I2C-afscherming.
Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.
De aansluitingen zijn weergegeven in de afbeelding hierboven.
Stap 3: Coderen:
De python-code voor PCA9536 kan worden gedownload van onze github-repository - DCUBE Store.
Hier is de link
We hebben de SMBus-bibliotheek gebruikt voor python-code, de stappen om SMBus op raspberry pi te installeren worden hier beschreven:
pypi.python.org/pypi/smbus-cffi/0.5.1
U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:
# Gedistribueerd met een vrije wilslicentie.
# Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.
# PCA9536
# Deze code is ontworpen om te werken met de PCA9536_I2CIO I2C Mini Module #
import smbus
import tijd
# Krijg I2C-bus
bus = smbus. SMBus(1)
# PCA9536 adres, 0x41(65)
# Selecteer configuratieregister, 0x03(03)
# 0xFF(255) Alle pinnen geconfigureerd als ingangen
bus.write_byte_data(0x41, 0x03, 0xFF)
# Uitvoer naar scherm
print "Alle pinnen zijn HOOG"
tijd.slaap(0.5)
# PCA9536 adres, 0x41(65)
# Lees gegevens terug van 0x00(00), 1 byte
data = bus.read_byte_data(0x41, 0x00)
# Converteer de gegevens naar 4-bits
gegevens = (gegevens & 0x0F)
voor i binnen bereik (0, 4):
if (gegevens & (2 ** i)) == 0:
print "I/O Pin %d Status is LAAG" %i
anders:
print "I/O Pin %d Status is HOOG" %i
tijd.slaap(0.5)
Stap 4: Toepassingen:
PCA9536 kan worden gebruikt als I/O-uitbreiding. Het biedt een eenvoudige oplossing wanneer extra input/output nodig is. Meestal wordt het gebruikt in systemen die uitbreiding vereisen voor ACPI-stroomschakelaars, sensoren, drukknoppen, LED's, ventilatoren, enz.