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

Using the CD74HC4067 Multiplexer with the Raspberry Pi

CD74HC4067 egy 16-csatornás analóg/digitális multiplexer, amely lehetővé teszi a Raspberry Pi számára a 16 bemenet vagy kimenet Csak néhány GPIO csapot használ. Kiválóan alkalmas a málna Pi I/O képességeinek kibővítésére, ha több érzékelővel vagy eszközzel dolgozik.


Mire lesz szüksége

  1. Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
  2. CD74HC4067 multiplexer
  3. Analóg vagy digitális bemeneti eszközök (például érzékelők, kapcsolók)
  4. Kenyérlemez és jumper vezetékek
  5. Python telepítve a málna pi -n

1. lépés: A CD74HC4067 megértése

A CD74HC4067:

  • 16 Bemenet/kimeneti csatornák (S0-S15)
  • 4 kontrollcsapok (S0, S1, S2, S3) Az aktív csatorna kiválasztásához.
  • 1 Engedélyezze a PIN -kódot (en) A multiplexer (aktív alacsony) aktiválásához.
  • Egyetlen Com (közönséges) PIN a megosztott kommunikációhoz.

Igazságtábla a csatorna kiválasztásához

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 CD74HC4067 vezetékesítése a Raspberry Pi -hez

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

CD74HC4067 PIN Málna pi tű
VCC 3.3 V (1. érintkező)
GND GND (6. érintkező)
S0 GPIO17 (11. érintkező)
S1 GPIO27 (13. érintkező)
S2 GPIO22 (15. érintkező)
S3 GPIO23 (16. érintkező)
Hüvelyes GND (aktív alacsony)
Com GPIO18 (12. érintkező, analóg bemenet/kimenet)
S0-S15 Csatlakoztassa az érzékelőket/eszközöket

3. lépés: Telepítse a szükséges könyvtárakat

Frissítse a Raspberry Pi -t, és telepítse a Python könyvtárakat a GPIO vezérléshez.

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

4. lépés: Python kód az adatok olvasására a multiplexerből

Itt van egy Python szkript a CD74HC4067 vezérléséhez és a csatlakoztatott csatornák adatai olvasásához.

Python kód példa

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()

5. lépés: A CD74HC4067 alkalmazása a Raspberry PI -vel

  1. Több érzékelő olvasása: Interfész akár 16 érzékelővel (például hőmérséklet, páratartalom vagy fény).
  2. Bővítő digitális I/O: Több kapcsoló, LED vagy relék kezelése.
  3. Analóg érzékelő integráció: Olvassa el a potenciométerek, joysticks vagy a talaj nedvességérzékelőinek jeleit.
  4. Otthoni automatizálás: Több eszköz, például lámpák, ventilátorok vagy készülékek vezérelése.

Hibaelhárítás

  1. Nincs adat a csatornákból:

    • Ellenőrizze az S0-S3 vezérlőcsapok és a COM tű huzalozását.
    • Győződjön meg arról, hogy az érzékelők/eszközök megfelelően csatlakoztathatók-e az S0-S15 csapokhoz.
  2. Helytelen csatorna kiválasztása:

    • Ellenőrizze az S0-S3 konfigurációk igazságtábláját.
    • Győződjön meg arról, hogy az EN PIN csatlakozik a GND -hez az aktiváláshoz.
  3. Szakaszos olvasmányok:

    • Adjon hozzá egy kis késleltetést (time.sleep(0.1)) A kapcsolócsatornák között a jel stabilizálásának lehetővé tétele érdekében.

Következtetés

A CD74HC4067 multiplexer egy erőteljes és költséghatékony módszer a Raspberry Pi bemeneti/kimeneti képességeinek bővítésére. Az útmutató követésével egyszerűen akár 16 analóg vagy digitális eszközhöz is csatlakozhat mindössze 4 GPIO csap segítségével. Kísérletezzen különféle érzékelőkkel és alkalmazásokkal, hogy a lehető legtöbbet hozza ki ebből a sokoldalú modulból! 🚀

Hagyj egy megjegyzést

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.