TCA9548A एक I2C मल्टीप्लेक्स है जो आपको एक ही I2C पते के साथ कई उपकरणों को एक रास्पबेरी पाई से जोड़ने की अनुमति देता है। यह प्रत्येक I2C डिवाइस को अपनी बस में अलग करके काम करता है, जिससे रास्पबेरी पाई को एक समय में उनके साथ संवाद करने में सक्षम बनाता है। यह विशेष रूप से जटिल परियोजनाओं में उपयोगी है जहां संबोधित संघर्ष हो सकते हैं।
आपको क्या चाहिए
- रसभरी पाई (GPIO समर्थन के साथ कोई भी मॉडल, जैसे, पीआई 3, पीआई 4)
- TCA9548A I2C मल्टीप्लेक्स मॉड्यूल
- I2C डिवाइस (जैसे, सेंसर या परिधीय)
- ब्रेडबोर्ड और जम्पर तार
- पायथन स्थापित रास्पबेरी पाई पर
चरण 1: रास्पबेरी पाई को TCA9548A को वायरिंग
TCA9548A I2C प्रोटोकॉल का उपयोग करके रास्पबेरी PI से जुड़ता है।
कनेक्शन
TCA9548A पिन | रास्पबेरी पाई पिन |
---|---|
विन | 3.3V (पिन 1) |
Gnd | ग्राउंड (पिन 6) |
एसएडीए | एसडीए (पिन 3, जीपीआईओ 2) |
आयोग | SCL (पिन 5, GPIO3) |
अपने I2C उपकरणों को TCA9548A की संख्या I2C बसों से कनेक्ट करें (जैसे, SD0/SCL0, SD1/SCL1).
चरण 2: I2C इंटरफ़ेस सक्षम करें
- रास्पबेरी पाई कॉन्फ़िगरेशन टूल खोलें:
sudo raspi-config
- नेविगेट करना इंटरफ़ेस विकल्प> I2C और इसे सक्षम करें।
- रास्पबेरी पाई को रिबूट करें:
sudo reboot
चरण 3: आवश्यक पुस्तकालय स्थापित करें
-
अपनी रास्पबेरी पाई की पैकेज सूची को अपडेट करें:
sudo apt update && sudo apt upgrade -y
-
I2C टूल और पायथन लाइब्रेरी स्थापित करें:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
सत्यापित करें कि TCA9548A I2C बस पर पाया गया है:
sudo i2cdetect -y 1
मल्टीप्लेक्स आमतौर पर पते पर दिखाई देगा
0x70
.
चरण 4: TCA9548A का उपयोग करने के लिए पायथन कोड
TCA9548A पर एक विशिष्ट I2C चैनल को सक्षम करने के लिए एक पायथन स्क्रिप्ट है और एक जुड़े सेंसर से डेटा पढ़ें।
पायथन कोड उदाहरण
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]
TCA9548A पर पहले I2C चैनल को संदर्भित करता है। - सेंसर लाइब्रेरी को बदलें (जैसे,
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 का उपयोग करें जहां कई सेंसर की आवश्यकता होती है।
- जटिल रोबोटिक्स: उन्नत रोबोटिक्स परियोजनाओं में कई सेंसर या एक्ट्यूएटर्स प्रबंधित करें।
समस्या निवारण
-
डिवाइस का पता नहीं चला:
- वायरिंग को सत्यापित करें और सुनिश्चित करें कि एसडीए/एससीएल पिन ठीक से जुड़े हुए हैं।
- पुष्टि करें कि TCA9548A संचालित है और इसका पता (
0x70
डिफ़ॉल्ट रूप से) I2C स्कैन में दिखाई देता है।
-
गलत चैनल डेटा:
- सुनिश्चित करें कि सेंसर सही चैनल से जुड़ा हुआ है और आपके पायथन स्क्रिप्ट में उपयुक्त लाइब्रेरी का उपयोग किया जाता है।
-
I2C संचार त्रुटियां:
- एक ही चैनल पर ढीले कनेक्शन या परस्पर विरोधी I2C पते की जाँच करें।
निष्कर्ष
TCA9548A I2C मल्टीप्लेक्स आपके रास्पबेरी पाई की I2C क्षमताओं का विस्तार करने और पते के संघर्षों को हल करने के लिए एक बहुमुखी उपकरण है। इस गाइड का पालन करके, आप मौसम की निगरानी प्रणाली, स्मार्ट होम और रोबोटिक्स जैसी जटिल परियोजनाओं में कई I2C उपकरणों को कुशलतापूर्वक प्रबंधित कर सकते हैं। अपनी क्षमताओं का पूरी तरह से पता लगाने के लिए विभिन्न उपकरणों और चैनलों के साथ प्रयोग करें!