A 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
- Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
- CD74HC4067 multiplexer
- Analóg vagy digitális bemeneti eszközök (például érzékelők, kapcsolók)
- Kenyérlemez és jumper vezetékek
- 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
- 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).
- Bővítő digitális I/O: Több kapcsoló, LED vagy relék kezelése.
- Analóg érzékelő integráció: Olvassa el a potenciométerek, joysticks vagy a talaj nedvességérzékelőinek jeleit.
- 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
-
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.
-
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.
-
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.
- Adjon hozzá egy kis késleltetést (
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! 🚀