THE CD74HC4067 הוא מרבב אנלוגי/דיגיטלי בן 16 ערוצים המאפשר ל- Raspberry Pi להתממשק עד 16 כניסות או תפוקות בעזרת סיכות GPIO בלבד. זה מושלם להרחבת יכולות הקלט/פלט של ה- Raspberry Pi שלך כשאתה עובד עם מספר חיישנים או מכשירים.
מה תצטרך
- Raspberry Pi (כל דגם עם תמיכה ב- GPIO, למשל, pi 3, pi 4)
- CD74HC4067 Multiplexer
- מכשירי קלט אנלוגיים או דיגיטליים (למשל, חיישנים, מתגים)
- חוטי לחם וגשר
- פיתון מותקן על ה- Raspberry Pi
שלב 1: הבנת ה- CD74HC4067
ל- CD74HC4067 יש:
- 16 ערוצי קלט/פלט (S0-S15)
- 4 סיכות בקרה (S0, S1, S2, S3) לבחירת הערוץ הפעיל.
- 1 הפעל סיכה (En) כדי להפעיל את המרבב (פעיל נמוך).
- סינגל סיכה com (נפוצה) לתקשורת משותפת.
טבלת האמת לבחירת הערוצים
S3 | S2 | S1 | S0 | ערוץ פעיל |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
שלב 2: חיווט ה- CD74HC4067 ל- Raspberry Pi
חבר את המרבב ל- Raspberry Pi כדלקמן:
CD74HC4067 PIN | סיכת פטל pi |
---|---|
VCC | 3.3 וולט (סיכה 1) |
GND | GND (סיכה 6) |
S0 | GPIO17 (סיכה 11) |
S1 | GPIO27 (סיכה 13) |
S2 | GPIO22 (סיכה 15) |
S3 | GPIO23 (סיכה 16) |
EN | GND (פעיל נמוך) |
Com | GPIO18 (סיכה 12, קלט/פלט אנלוגי) |
S0-S15 | חבר חיישנים/מכשירים |
שלב 3: התקן ספריות נדרשות
עדכן את ה- Raspberry Pi שלך והתקן את ספריות Python לבקרת GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
שלב 4: קוד פייתון לקריאת נתונים מהמרבב
להלן סקריפט Python לשליטה ב- CD74HC4067 ולקרוא נתונים מהערוצים המחוברים.
דוגמה לקוד פיתון
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: יישומים של CD74HC4067 עם Raspberry Pi
- קריאת חיישנים מרובים: ממשק עם עד 16 חיישנים (למשל, טמפרטורה, לחות או אור).
- הרחבת קלט/פלט דיגיטלי: נהל מתגים מרובים, נוריות LED או ממסרים.
- שילוב חיישן אנלוגי: קרא אותות מפוטנציומטרים, ג'ויסטיק או חיישני לחות אדמה.
- אוטומציה ביתית: שלוט במספר מכשירים כמו אורות, מאווררים או מכשירים.
פתרון בעיות
-
אין נתונים מערוצים:
- אמת את החיווט של סיכות בקרה S0-S3 ואת סיכת ה- COM.
- ודא שחיישנים/מכשירים מחוברים כראוי לסיכות S0-S15.
-
בחירת ערוצים שגויה:
- בדוק את טבלת האמת אם יש תצורות S0-S3.
- ודא שה- EN PIN מחובר ל- GND להפעלה.
-
קריאות לסירוגין:
- הוסף עיכוב קטן (
time.sleep(0.1)
) בין מיתוג ערוצי כדי לאפשר ייצוב אותות.
- הוסף עיכוב קטן (
מַסְקָנָה
THE CD74HC4067 Multiplexer היא דרך עוצמתית וחסכונית להרחבת יכולות הקלט/פלט של Raspberry Pi. על ידי ביצוע מדריך זה, תוכלו להתממשק בקלות עם עד 16 מכשירים אנלוגיים או דיגיטליים באמצעות 4 סיכות GPIO בלבד. התנסו בחיישנים ויישומים שונים כדי להפיק את המרב מהמודול המגוון הזה! 🚀