الـ TCA9548A هو مُضاعِف I2C يسمح لك بتوصيل عدة أجهزة لها نفس عنوان I2C إلى Raspberry Pi واحد. يعمل عن طريق عزل كل جهاز I2C على حافته الخاصة، مما يمكّن Raspberry Pi من التواصل معها واحدًا تلو الآخر. هذا مفيد بشكل خاص في المشاريع المعقدة حيث قد تحدث تعارضات في العناوين.
ما الذي ستحتاج إليه
- راسبيري باي (أي نموذج يدعم GPIO، مثل Pi 3، Pi 4)
- وحدة تعدد الإرسال I2C طراز TCA9548A
- أجهزة I2C (مثلًا، المستشعرات أو الملحقات)
- لوحة تجارب وأسلاك توصيل
- تم تثبيت Python على Raspberry Pi
الخطوة 1: توصيل الأسلاك TCA9548A إلى Raspberry Pi
الـ TCA9548A يتصل بـ Raspberry Pi باستخدام بروتوكول I2C.
اتصالات
| TCA9548A دبوس | دبوس Raspberry Pi |
|---|---|
| رقم تعريف المركبة | 3.3V (الدبوس 1) |
| GND | الأرضي (الدبوس 6) |
| SDA | SDA (الدبوس 3، GPIO2) |
| SCL | SCL (الدبوس 5، GPIO3) |
قم بتوصيل أجهزة I2C الخاصة بك إلى الـ TCA9548Aحافلات I2C المرقمة الخاصة به (على سبيل المثال، SD0/SCL0، SD1/SCL1).
الخطوة 2: تمكين واجهة I2C
- افتح أداة تهيئة Raspberry Pi:
sudo raspi-config - انتقل إلى خيارات الواجهة > I2C وفعِّلْه.
- أعد تشغيل Raspberry Pi:
sudo إعادة التشغيل
الخطوة 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: كود Python لاستخدام الـ TCA9548A
إليك برنامج Python لتمكين قناة I2C محددة على الـ TCA9548A وقراءة البيانات من مستشعر متصل.
مثال على كود Python
import board
import busio
from adafruit_tca9548a import TCA9548A
# تهيئة I2C و مبدّل TCA9548A
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548A(i2c)
# الوصول إلى قناة I2C محددة (مثلاً، القناة 0)
channel_0 = tca[0]
# مثال: التعامل مع جهاز I2C على القناة 0
import adafruit_bme280 # استبدل بمكتبة الحساس الخاصة بك
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)
# قراءة البيانات من الحساس
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 يحتوي على 8 قنوات (0-7)
if tca[i].try_lock():
print(f"جارٍ الوصول إلى الجهاز على القناة {i}")
tca[i].unlock()
يمكنك استخدام هذا النهج لإدارة عدة حساسات أو ملحقات متصلة بالمبدّل المتعدد.
تطبيقات الـ TCA9548A
- تجنّب تعارض عناوين I2C: استخدم المُبدِّل المتعدد لعزل الأجهزة التي تحمل نفس عنوان I2C.
- توسيع أجهزة I2C: اربط ما يصل إلى 8 حافلات، كل منها يدعم عدة أجهزة.
- مشاريع إنترنت الأشياء: استخدم الـ TCA9548A في أنظمة المنزل الذكي أو مراقبة البيئة حيث تكون هناك حاجة إلى مستشعرات متعددة.
- الروبوتات المعقدة: إدارة عدة مستشعرات أو مشغلات في مشاريع الروبوتات المتقدمة.
استكشاف الأخطاء وإصلاحها
-
لم يتم اكتشاف الجهاز:
- تحقّق من التوصيلات وتأكد من توصيل دبابيس SDA/SCL بشكل صحيح.
- أكد أن الـ TCA9548A يتم تشغيله وعنوانه (
0x70افتراضيًا) يظهر في فحص I2C.
-
بيانات القناة غير صحيحة:
- تأكد من توصيل المستشعر بالقناة الصحيحة واستخدام المكتبة المناسبة في سكربت Python الخاص بك.
-
أخطاء اتصال I2C:
- تحقق من الاتصالات المفكوكة أو عناوين I2C المتعارضة على القناة نفسها.
الخلاصة
الـ مبدّل تعدد الإرسال I2C من نوع TCA9548A هو أداة متعددة الاستخدامات لتوسيع قدرات I2C في Raspberry Pi وحل تعارضات العناوين. باتباع هذا الدليل، يمكنك إدارة عدة أجهزة I2C بكفاءة في مشاريع معقدة مثل أنظمة مراقبة الطقس، والمنازل الذكية، والروبوتات. جرّب أجهزة وقنوات مختلفة لاستكشاف إمكاناته بالكامل!



