ה- TCA9548A הוא מרבב I2C המאפשר לך לחבר מכשירים מרובים עם אותה כתובת I2C ל- PI פטל יחיד. זה עובד על ידי בידוד כל מכשיר i2c באוטובוס שלו, ומאפשר ל- Raspberry Pi לתקשר איתם בזה אחר זה. זה שימושי במיוחד בפרויקטים מורכבים שבהם עלולים להתרחש קונפליקטים.
מה תצטרך
- Raspberry Pi (כל דגם עם תמיכה ב- GPIO, למשל, pi 3, pi 4)
- TCA9548A I2C מודול מולטיפלקס
- מכשירי i2c (למשל, חיישנים או ציוד היקפי)
- חוטי לחם וגשר
- פיתון מותקן על ה- Raspberry Pi
שלב 1: חיווט TCA9548A ל- Raspberry Pi
ה- TCA9548A מתחבר ל- Raspberry Pi באמצעות פרוטוקול I2C.
חיבורים
TCA9548A סיכה | סיכת פטל pi |
---|---|
VIN | 3.3 וולט (סיכה 1) |
GND | קרקע (סיכה 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (סיכה 5, GPIO3) |
חבר את מכשירי ה- i2c שלך לאוטובוסים המספרים של ה- I2C של TCA9548A (למשל, למשל, SD0/SCL0, SD1/SCL1).
שלב 2: הפעל את ממשק i2c
- פתח את כלי התצורה של Raspberry Pi:
sudo raspi-config
- נווט אל אפשרויות ממשק> i2c ולאפשר את זה.
- אתחל מחדש את ה- Raspberry Pi:
sudo reboot
שלב 3: התקן ספריות נדרשות
-
עדכן את רשימת החבילות של Raspberry Pi שלך:
sudo apt update && sudo apt upgrade -y
-
התקן את כלי ה- I2C וספריות Python:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
ודא שה- TCA9548A מתגלה באוטובוס I2C:
sudo i2cdetect -y 1
המולפלקס בדרך כלל יופיע בכתובת
0x70
.
שלב 4: קוד פייתון לשימוש ב- TCA9548A
להלן סקריפט פייתון כדי לאפשר ערוץ I2C ספציפי ב- TCA9548A ולקרוא נתונים מחיישן מחובר.
דוגמה לקוד פיתון
import board
import busio
from adafruit_tca9548a import TCA9548A
# Initialize I2C and TCA9548A multiplexer
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548A(i2c)
# Access a specific I2C channel (e.g., channel 0)
channel_0 = tca[0]
# Example: Interfacing with an I2C device on channel 0
import adafruit_bme280 # Replace with your sensor library
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)
# Read data from the sensor
print(f"Temperature: {sensor.temperature:.2f} °C")
print(f"Humidity: {sensor.humidity:.2f} %")
הֶסבֵּר:
-
tca[0]
מתייחס לערוץ I2C הראשון ב- TCA9548A. - החלף את ספריית החיישנים (למשל,
adafruit_bme280
) עם הספרייה עבור החיישן או המכשיר הספציפי שלך.
שלב 5: מעבר בין ערוצים
TCA9548A מאפשר לך לעבור בין מספר התקני I2C המחוברים לערוצים שונים. להלן דוגמה לאיחוד בערוצים לקריאה ממכשירים מרובים:
for i in range(8): # TCA9548A has 8 channels (0-7)
if tca[i].try_lock():
print(f"Accessing device on channel {i}")
tca[i].unlock()
אתה יכול להשתמש בגישה זו כדי לנהל מספר חיישנים או ציוד היקפי המחוברים למרבב.
יישומים של TCA9548A
- הימנעות מסכסוכים בכתובת i2c: השתמש במולטיפלקס כדי לבודד מכשירים עם אותה כתובת i2c.
- הרחבת מכשירי I2C: התחבר עד 8 אוטובוסים, שכל אחד מהם תומך במכשירים מרובים.
- פרויקטים של IoT: השתמש ב- TCA9548A במערכות ניטור ביתיות או סביבתיות בהן נדרשים חיישנים מרובים.
- רובוטיקה מורכבת: נהל מספר חיישנים או מפעילים בפרויקטים של רובוטיקה מתקדמים.
פתרון בעיות
-
המכשיר לא זוהה:
- אמת את החיווט וודא כי סיכות SDA/SCL מחוברות כראוי.
- אשר כי TCA9548A מופעל וכתובתו (
0x70
כברירת מחדל) מופיע בסריקת i2c.
-
נתוני ערוץ שגויים:
- וודא שהחיישן מחובר לערוץ הנכון והספרייה המתאימה משמשת בסקריפט Python שלך.
-
שגיאות תקשורת I2C:
- בדוק אם יש חיבורים רופפים או כתובות I2C מנוגדות באותו ערוץ.
מַסְקָנָה
ה- TCA9548A I2C Multiplexer הוא כלי רב תכליתי להרחבת יכולות ה- I2C של Raspberry Pi שלך ולפתרון קונפליקטים כתובות. על ידי ביצוע מדריך זה, אתה יכול לנהל ביעילות מכשירי I2C מרובים בפרויקטים מורכבים כמו מערכות ניטור מזג אוויר, בתים חכמים ורובוטיקה. התנסו במכשירים וערוצים שונים כדי לחקור באופן מלא את יכולותיה!