Raspberry Pi ile CD74HC4067 Multiplexer kullanma

Using the CD74HC4067 Multiplexer with the Raspberry Pi

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

  1. Ahududu pi (GPIO destekli herhangi bir model, örneğin Pi 3, Pi 4)
  2. CD74HC4067 Multiplexer
  3. Analog veya dijital giriş aygıtları (örneğin, sensörler, anahtarlar)
  4. Breadboard ve jumper telleri
  5. 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ı

  1. Birden çok sensör okumak: 16'ya kadar sensörle (örn. Sıcaklık, nem veya ışık) arayüz.
  2. Dijital G/Ç genişletme: Birden fazla anahtar, LED veya röleyi yönetin.
  3. Analog sensör entegrasyonu: Potansiyometreler, joysticks veya toprak nem sensörlerinden sinyalleri okuyun.
  4. Ev otomasyonu: Işık, fan veya aletler gibi birden fazla cihazı kontrol edin.

Sorun giderme

  1. 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.
  2. 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.
  3. Aralıklı okumalar:

    • Küçük bir gecikme ekleyin (time.sleep(0.1)) sinyal stabilizasyonuna izin vermek için kanalların anahtarlama arasında.

Çö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! 🚀

Yorum bırak

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.