2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
PCA9536, I2C-bus/SMBus tətbiqləri üçün 4 bit Ümumi Məqsədli paralel Giriş/Çıxış (GPIO) genişləndirməsini təmin edən 8 pinli CMOS cihazıdır. Giriş və ya çıxış seçimi məqsədinə xidmət etmək üçün 4-bitlik Konfiqurasiya reyestrindən, 4-bit Giriş Port qeydindən, 4-bit Çıxış Portu registrindən və 4-bit Polarite İnversiyası reyestrindən aktiv HIGH və ya aktiv LOW əməliyyatından ibarətdir. Python kodu istifadə edərək moruq pi ilə nümayişidir.
Addım 1: Nə Lazımdır..
1. Moruq Pi
2. PCA9536
3. I²C Kabel
4. Raspberry Pi üçün I²C Qalxanı
5. Ethernet Kabeli
Addım 2: Bağlantılar:
Moruq pi üçün bir I2C qalxanı götürün və moruq pi gpio sancaqlarının üzərinə yumşaq bir şəkildə itələyin.
Sonra I2C kabelinin bir ucunu PCA9536 sensoruna, digər ucunu isə I2C ekranına bağlayın.
Ayrıca Ethernet kabelini pi -yə qoşun və ya WiFi modulundan istifadə edə bilərsiniz.
Bağlantılar yuxarıdakı şəkildə göstərilmişdir.
Addım 3: Kod:
PCA9536 üçün python kodu github depomuzdan- DCUBE Mağazasından yükləyə bilərsiniz.
İşdə link
Python kodu üçün SMBus kitabxanasından istifadə etmişik, moruq pi üzərində SMBus quraşdırma addımları burada təsvir edilmişdir:
pypi.python.org/pypi/smbus-cffi/0.5.1
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
# Sərbəst iradə lisenziyası ilə paylandı.
# Əlaqədar əsərlərinin lisenziyalarına uyğun olması şərtilə, mənfəət və ya pulsuz olaraq istədiyiniz şəkildə istifadə edin.
# PCA9536
# Bu kod PCA9536_I2CIO I2C Mini Modulu ilə işləmək üçün nəzərdə tutulmuşdur #
smbus idxal edin
idxal vaxtı
# I2C avtobusu alın
avtobus = smbus. SMBus (1)
# PCA9536 ünvanı, 0x41 (65)
# Konfiqurasiya qeydini seçin, 0x03 (03)
# 0xFF (255) Bütün pinlər giriş kimi konfiqurasiya edilmişdir
bus.write_byte_data (0x41, 0x03, 0xFF)
# Ekrana çıxış
çap et "Bütün Pins Əyaləti YÜKSEKdir"
vaxt.yuxu (0.5)
# PCA9536 ünvanı, 0x41 (65)
# 0x00 (00), 1 baytdan məlumatları geri oxuyun
data = bus.read_byte_data (0x41, 0x00)
# Məlumatı 4 bitə çevirin
data = (data & 0x0F)
i üçündür (0, 4):
əgər (data & (2 ** i)) == 0:
çap "I/O Pin %d State LOW" %i
başqa:
çap "I/O Pin %d State HIGH" %i
vaxt.yuxu (0.5)
Addım 4: Tətbiqlər:
PCA9536 I/O genişləndiricisi kimi istifadə edilə bilər. Əlavə giriş/çıxış lazım olduqda sadə bir həll təmin edir. Adətən ACPI güc açarları, sensorlar, düymələr, LEDlər, fanatlar və s.