באמצעות ה- CD74HC4067 Multiplexer עם ה- Raspberry Pi

Using the CD74HC4067 Multiplexer with the Raspberry Pi

THE CD74HC4067 הוא מרבב אנלוגי/דיגיטלי בן 16 ערוצים המאפשר ל- Raspberry Pi להתממשק עד 16 כניסות או תפוקות בעזרת סיכות GPIO בלבד. זה מושלם להרחבת יכולות הקלט/פלט של ה- Raspberry Pi שלך כשאתה עובד עם מספר חיישנים או מכשירים.


מה תצטרך

  1. Raspberry Pi (כל דגם עם תמיכה ב- GPIO, למשל, pi 3, pi 4)
  2. CD74HC4067 Multiplexer
  3. מכשירי קלט אנלוגיים או דיגיטליים (למשל, חיישנים, מתגים)
  4. חוטי לחם וגשר
  5. פיתון מותקן על ה- 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

  1. קריאת חיישנים מרובים: ממשק עם עד 16 חיישנים (למשל, טמפרטורה, לחות או אור).
  2. הרחבת קלט/פלט דיגיטלי: נהל מתגים מרובים, נוריות LED או ממסרים.
  3. שילוב חיישן אנלוגי: קרא אותות מפוטנציומטרים, ג'ויסטיק או חיישני לחות אדמה.
  4. אוטומציה ביתית: שלוט במספר מכשירים כמו אורות, מאווררים או מכשירים.

פתרון בעיות

  1. אין נתונים מערוצים:

    • אמת את החיווט של סיכות בקרה S0-S3 ואת סיכת ה- COM.
    • ודא שחיישנים/מכשירים מחוברים כראוי לסיכות S0-S15.
  2. בחירת ערוצים שגויה:

    • בדוק את טבלת האמת אם יש תצורות S0-S3.
    • ודא שה- EN PIN מחובר ל- GND להפעלה.
  3. קריאות לסירוגין:

    • הוסף עיכוב קטן (time.sleep(0.1)) בין מיתוג ערוצי כדי לאפשר ייצוב אותות.

מַסְקָנָה

THE CD74HC4067 Multiplexer היא דרך עוצמתית וחסכונית להרחבת יכולות הקלט/פלט של Raspberry Pi. על ידי ביצוע מדריך זה, תוכלו להתממשק בקלות עם עד 16 מכשירים אנלוגיים או דיגיטליים באמצעות 4 סיכות GPIO בלבד. התנסו בחיישנים ויישומים שונים כדי להפיק את המרב מהמודול המגוון הזה! 🚀

השאירו תגובה

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.