TCA9548A هو مضاعف I2C يتيح لك توصيل أجهزة متعددة مع نفس عنوان I2C بعنوان Raspberry PI واحد. إنه يعمل عن طريق عزل كل جهاز I2C على الحافلة الخاصة به ، مما يتيح لـ Raspberry Pi التواصل معهم واحدًا تلو الآخر. هذا مفيد بشكل خاص في المشاريع المعقدة حيث قد تحدث تعارضات العنوان.
ماذا ستحتاج
- التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
- TCA9548A I2C MULIPLEXER MODULE
- أجهزة I2C (على سبيل المثال ، أجهزة الاستشعار أو الأجهزة الطرفية)
- الأسلاك الأسلاك والبلوز
- بيثون مثبت على التوت PI
الخطوة 1: توصيل TCA9548A إلى Raspberry Pi
يتصل TCA9548A بـ Raspberry PI باستخدام بروتوكول I2C.
الاتصالات
TCA9548A دبوس | التوت بي دبوس |
---|---|
فين | 3.3V (دبوس 1) |
GND | الأرض (دبوس 6) |
SDA | SDA (PIN 3 ، GPIO2) |
SCL | SCL (PIN 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
إليك برنامج نصي Python لتمكين قناة 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 حافلات ، كل يدعم أجهزة متعددة.
- مشاريع إنترنت الأشياء: استخدم TCA9548A في أنظمة المراقبة البيئية الذكية أو البيئية حيث تكون هناك حاجة إلى أجهزة استشعار متعددة.
- الروبوتات المعقدة: إدارة أجهزة استشعار متعددة أو مشغلات في مشاريع الروبوتات المتقدمة.
استكشاف الأخطاء وإصلاحها
-
لم يتم اكتشاف الجهاز:
- تحقق من الأسلاك وتأكد من توصيل دبابيس SDA/SCL بشكل صحيح.
- تأكد من تشغيل TCA9548A وعنوانه (
0x70
بشكل افتراضي) يظهر في مسح I2C.
-
بيانات القناة غير الصحيحة:
- تأكد من توصيل المستشعر بالقناة الصحيحة ويتم استخدام المكتبة المناسبة في البرنامج النصي Python الخاص بك.
-
أخطاء الاتصالات I2C:
- تحقق من وجود اتصالات فضفاضة أو عناوين I2C المتضاربة على نفس القناة.
خاتمة
تعد TCA9548A I2C Multiplexer أداة متعددة الاستخدامات لتوسيع قدرات I2C الخاصة بـ Raspberry PI وحل تعارضات العنوان. باتباع هذا الدليل ، يمكنك إدارة أجهزة I2C المتعددة بكفاءة في مشاريع معقدة مثل أنظمة مراقبة الطقس والمنازل الذكية والروبوتات. تجربة مع أجهزة وقنوات مختلفة لاستكشاف قدراتها بالكامل!