. CD74HC4067 bir Raspberry Pi'nin arayüz oluşturmasını sağlayan 16 kanallı bir analog/dijital çoklayıcıdır. 16 giriş veya çıkış Sadece birkaç GPIO pimi kullanarak. Birden fazla sensör veya cihazla çalışırken Raspberry Pi'nizin G/Ç özelliklerini genişletmek için mükemmeldir.
Ne İhtiyacınız Olacak
- Ahududu pi (GPIO destekli herhangi bir model, örneğin Pi 3, Pi 4)
- CD74HC4067 Multiplexer
- Analog veya dijital giriş aygıtları (örneğin, sensörler, anahtarlar)
- Breadboard ve jumper telleri
- Python yüklü Raspberry Pi'de
Adım 1: CD74HC4067'yi anlamak
CD74HC4067'de:
- 16 Giriş/Çıkış Kanalları (S0-S15)
- 4 Kontrol Pimleri (S0, S1, S2, S3) Etkin kanalı seçmek için.
- 1 Etkinleştir PIN (EN) Multiplexer'ı etkinleştirmek için (aktif düşük).
- Single Com (ortak) pim Paylaşılan iletişim için.
Kanal seçimi için Hakikat Tablosu
S3 | S2 | S1 | S0 | Aktif kanal |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
Adım 2: CD74HC4067'yi Raspberry Pi'ye bağlama
Multiplexer'ı Raspberry Pi'ye aşağıdaki gibi bağlayın:
CD74HC4067 PIN | Raspberry Pi Pimi |
---|---|
VCC | 3.3V (pim 1) |
Gnd | GND (pim 6) |
S0 | GPIO17 (pim 11) |
S1 | GPIO27 (pim 13) |
S2 | GPIO22 (Pin 15) |
S3 | GPIO23 (pim 16) |
En | GND (aktif düşük) |
Com | GPIO18 (pim 12, analog giriş/çıkış) |
S0-S15 | Sensörleri/aygıtları bağlayın |
3. Adım: Gerekli kütüphaneleri kurun
Raspberry Pi'nizi güncelleyin ve GPIO kontrolü için Python kütüphanelerini yükleyin.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Adım 4: Python kodu, çoklayıcıdan verileri okumak için
İşte CD74HC4067'yi kontrol etmek ve bağlı kanallardan veri okumak için bir Python komut dosyası.
Python kodu örneği
import RPi.GPIO as GPIO
import time
# Define GPIO pins
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18 # Common pin for input/output
# Initialize GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN) # Set COM pin as input for reading data
# Function to select a channel
def select_channel(channel):
GPIO.output(S0, channel & 0x01)
GPIO.output(S1, (channel >> 1) & 0x01)
GPIO.output(S2, (channel >> 2) & 0x01)
GPIO.output(S3, (channel >> 3) & 0x01)
try:
while True:
for channel in range(16):
select_channel(channel)
time.sleep(0.1) # Small delay for channel stabilization
value = GPIO.input(COM) # Read data from the active channel
print(f"Channel {channel}: {value}")
time.sleep(1)
except KeyboardInterrupt:
print("Exiting...")
finally:
GPIO.cleanup()
Adım 5: CD74HC4067'nin Raspberry Pi ile Uygulamaları
- Birden çok sensör okumak: 16'ya kadar sensörle (örn. Sıcaklık, nem veya ışık) arayüz.
- Dijital G/Ç genişletme: Birden fazla anahtar, LED veya röleyi yönetin.
- Analog sensör entegrasyonu: Potansiyometreler, joysticks veya toprak nem sensörlerinden sinyalleri okuyun.
- Ev otomasyonu: Işık, fan veya aletler gibi birden fazla cihazı kontrol edin.
Sorun giderme
-
Kanallardan veri yok:
- S0-S3 kontrol pimlerinin ve COM piminin kablolarını doğrulayın.
- Sensörlerin/cihazların S0-S15 pimlerine uygun şekilde bağlandığından emin olun.
-
Yanlış Kanal Seçimi:
- S0-S3 yapılandırmaları için Hakikat Tablosu'nu kontrol edin.
- EN PIN'in aktivasyon için GND'ye bağlı olduğundan emin olun.
-
Aralıklı okumalar:
- Küçük bir gecikme ekleyin (
time.sleep(0.1)
) sinyal stabilizasyonuna izin vermek için kanalların anahtarlama arasında.
- Küçük bir gecikme ekleyin (
Çözüm
. CD74HC4067 Multiplexer Raspberry Pi’nin giriş/çıkış özelliklerini genişletmenin güçlü ve uygun maliyetli bir yoludur. Bu kılavuzu izleyerek, sadece 4 GPIO pimi kullanarak 16 adede kadar analog veya dijital cihazla kolayca arayüz oluşturabilirsiniz. Bu çok yönlü modülden en iyi şekilde yararlanmak için çeşitli sensörler ve uygulamalarla deney yapın! 🚀