FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

A CD74HC4067 multiplexer használatával a Raspberry PI -vel

Using the CD74HC4067 Multiplexer with the Raspberry Pi

The CD74HC4067 egy 16 csatornás analóg/digitális multiplexer, amely lehetővé teszi, hogy egy Raspberry Pi akár 16 bemenet vagy kimenet mindössze néhány GPIO tű használatával. Tökéletes választás a Raspberry Pi I/O képességeinek bővítésére, ha több érzékelővel vagy eszközzel dolgozik.


Amire szükséged lesz

  1. Raspberry Pi (bármely GPIO-támogatással rendelkező modell, pl. Pi 3, Pi 4)
  2. CD74HC4067 Multiplexer
  3. Analóg vagy digitális beviteli eszközök (pl. érzékelők, kapcsolók)
  4. Breadboard és összekötő vezetékek
  5. Python telepítve a Raspberry Pi-on

Step 1: Understanding the CD74HC4067

A CD74HC4067 has:

  • 16 be-/kimeneti csatorna (S0-S15)
  • 4 vezérlőtű (S0, S1, S2, S3) az aktív csatorna kiválasztásához.
  • 1 PIN-kód engedélyezése (EN) a multiplexer aktiválásához (aktív ALACSONY).
  • Egyetlen COM (közös) érintkező a megosztott kommunikációhoz.

Igazságtáblázat a csatornaválasztáshoz

S3 S2 S1 S0 Aktív csatorna
0 0 0 0 S0
0 0 0 1 S1
0 0 1 0 S2
... ... ... ... ...
1 1 1 1 S15

2. lépés: A huzalozás CD74HC4067 a Raspberry Pi-hez

Csatlakoztassa a multiplexert a Raspberry Pi-hez az alábbiak szerint:

CD74HC4067 Pin Raspberry Pi Pin
VCC 3.3V (Pin 1)
GND GND (6. tű)
S0 GPIO17 (11-es tű)
S1 GPIO27 (13-as tű)
S2 GPIO22 (15. tű)
S3 GPIO23 (16-os tű)
EN GND (Aktív ALACSONY)
COM GPIO18 (12-es tű, analóg bemenet/kimenet)
S0-S15 Sensors/eszközök csatlakoztatása

3. lépés: A szükséges könyvtárak telepítése

Update your Raspberry Pi and install Python libraries for GPIO control.

sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio

4. lépés: Python-kód az adatok leolvasásához a multiplexerről

Íme egy Python-szkript a vezérléshez CD74HC4067

Python kódpélda

python
import RPi.GPIO as GPIO
import time

# GPIO pinek definiálása
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18  # Közös pin a bemenethez/kimenethez

# GPIO inicializálása
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN)  # COM pin beállítása bemenetként az adatok olvasásához

# Funkció a csatorna kiválasztásához
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)  # Kis késleltetés a csatorna stabilizálásához
            value = GPIO.input(COM)  # Adatok olvasása az aktív csatornáról
            print(f"Csatorna {channel}: {value}")
        time.sleep(1)
except KeyboardInterrupt:
    print("Kilépés...")
finally:
    GPIO.cleanup()

Step 5: Applications of the CD74HC4067 Raspberry Pi-vel

  1. Több szenzor leolvasása: Akár 16 érzékelővel (pl. hőmérséklet-, páratartalom- vagy fényérzékelővel) is összekapcsolható.
  2. Digitális I/O bővítése: Kezeljen több kapcsolót, LED-et vagy relét.
  3. Analóg érzékelő integrációja: Olvassa be a potenciométerek, joystickok vagy talajnedvesség-érzékelők jeleit.
  4. Home Automation: Vezéreljen több eszközt, például lámpákat, ventilátorokat vagy egyéb készülékeket.

Hibaelhárítás

  1. Nincs adat a csatornákból:

    • Ellenőrizze az S0-S3 vezérlőtűk és a COM tű bekötését.
    • Győződjön meg arról, hogy az érzékelők/eszközök megfelelően csatlakoznak az S0-S15 pinekhez.
  2. Helytelen csatornaválasztás:

    • Ellenőrizze az S0-S3 konfigurációk igazságtábláját.
    • Aktiváláshoz győződjön meg arról, hogy az EN pin a GND-hez van csatlakoztatva.
  3. Időszakos leolvasások:

    • Adjon meg egy kis késleltetést (time.sleep(0.1)) between switching channels to allow signal stabilization.

Összegzés

A CD74HC4067 multiplexer egy hatékony és költséghatékony módja a Raspberry Pi bemeneti/kimeneti képességeinek bővítésére. Ezt az útmutatót követve könnyedén csatlakoztathat akár 16 analóg vagy digitális eszközt mindössze 4 GPIO tű használatával. Kísérletezzen a különböző szenzorokkal és alkalmazásokkal, hogy a legtöbbet hozza ki ebből a sokoldalú modulból! 🚀

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.

Hagyj egy megjegyzést