Arduino पर एक ही पिन A4 (SDA) और A5 (SCL) में कई i2c-इंटरफ़ेस डिवाइस को कैसे कनेक्ट करें?


31

मैं अपनी छोटी परियोजना में एक वास्तविक समय घड़ी मॉड्यूल जोड़ना चाहता हूं। मैं अपने मौजूदा i2c 2x16 एलसीडी मॉड्यूल पर समय और तारीख दोनों प्रदर्शित करना चाहता हूं।

दोनों i2c- इंटरफ़ेस रियल टाइम क्लॉक मॉड्यूल और 2x16 एलसीडी मॉड्यूल Arduino Uno पर समान पिन A4 (SDA) और A5 (SCL) का उपयोग करते हैं। नेट पर खोज के घंटे के बाद i2c बस वास्तव में कई सीरियल डिवाइस ले सकती है। यह संभव है क्योंकि प्रत्येक डिवाइस का अपना विशिष्ट पता होता है।

मेरा सवाल यह है कि भौतिक रूप से दो i2c- इंटरफ़ेस उपकरणों को एक ही A4 और A5 में कैसे तारित किया जाए? धन्यवाद।


3
संक्षिप्त उत्तर: उन्हें समानांतर में तार दें। एसडीए को एक साथ बांधें और ए 4, और एससीएल को ए 5 से कनेक्ट करें। फिर निश्चित रूप से पुल-अप मुद्दा है जो कभी-कभी मदद करता है।
एसडीसोलर

जवाबों:


32

कुछ लोगों को एक साथ जुड़ी चीजों की कल्पना करते हुए एक कठिन समय हो रहा है, इसलिए यहां एक तस्वीर है:

(सेवारत सुझाव)

ढांच के रूप में

इस सर्किट का अनुकरण करें - सर्किटलैब I2C का उपयोग करके बनाई गई योजनाबद्ध एक बस है, इसलिए जैसे नाम वाले सिग्नल एक साथ जुड़े हुए हैं। एड्रेसिंग स्कीम माइक्रोकंट्रोलर को यह चुनने की अनुमति देती है कि वह किस डिवाइस से बात कर रही है। Arduino पर 10k पुल-अप रेसिस्टर्स गोटो "VDD", जो कि 5V या 3.3V पिन है।


नमस्ते, यह बहुत ही बुनियादी हो सकता है, लेकिन मैं इलेक्ट्रॉनिक्स के लिए नया हूं और इस पृष्ठ को Google खोज से उतारा है, जिसे uC संदर्भित करता है?
साइस्टो पाइकर्ज 7

मेरा मानना ​​है कि संदर्भ किसी भी यूसी के लिए है, क्योंकि कनेक्शन योजना समान होनी चाहिए, जब तक कि अन्यथा उल्लेख न किया गया हो।
किंग्सइनरसोल

uC एक Arduino हो सकता है। एसडीए पिन ए 4 है और एससीएल पिन ए 5 है।
एसडीसोलर

9
@Ciastopiekarz, μC "माइक्रोकंट्रोलर" के लिए छोटा है। ग्रीक अक्षर μ माइक्रो का संक्षिप्त नाम है। क्योंकि μ यू की तरह दिखता है, बहुत से लोग सिर्फ "यूसी" लिखते हैं।
फ़ोबोब्रैब्यू जूल

9

I2C के लिए, यदि सभी दास उपकरणों में अलग-अलग डिवाइस पते हैं, तो सभी एसडीए पिन को एक साथ जोड़ा जाना चाहिए, और सभी एससीएल पिन को एक साथ जोड़ा जाना चाहिए। यह इतना सरल है।

स्वाभाविक रूप से, आपको दोनों लाइनों पर पुल-अप प्रतिरोधों को भी शामिल करना चाहिए, जैसा कि I2C के लिए आवश्यक है। इससे पहले कि यहां अवरोधक मूल्यों का चयन कैसे किया जाए ।


मैंने पाया है कि जब तक उपकरणों में से एक DS3231 RTC है तब तक किसी भी बाहरी पुलअप की आवश्यकता नहीं है।
एसडीसोलर

3
@SDsolar, इसका मतलब है कि DS3231 का आंतरिक पुल-अप है, इसलिए उस डिवाइस का उपयोग करके, आप बस के लिए पुल-अप प्रदान कर रहे हैं। यह जरूरी नहीं कि अच्छी बात है, क्योंकि यह बस में उपकरणों की संख्या के आधार पर पुल अप प्रतिरोध को समायोजित करने की आपकी स्वतंत्रता को सीमित करता है।
द फोटोन

मेरे विचार से भी। बाहरी पुलअप को जोड़ना DS3231 में जो कुछ भी है उसके समानांतर होगा, और इसलिए I2C को खुश होने के लिए पर्याप्त नहीं हो सकता है।
एसडीसोलर

@SDsolar, इसका ओपी के सवाल या मेरे जवाब से क्या लेना-देना है? यह एक सामान्य चर्चा स्थल नहीं है। यदि आप सामान के बारे में बात करना चाहते हैं, तो आप हमारे चैट रूम में शामिल हो सकते हैं
फोटॉन

3

दो पिन A4-sda को A5-scl (दोनों बोर्ड uno-uno पर) से कनेक्ट करें और प्रत्येक sda-scl लाइनों से 5v से रोकनेवाला कनेक्ट करें।

यहाँ छवि विवरण दर्ज करें


नीचे वोट दिया गया क्योंकि उत्तर मूल प्रश्न का उत्तर नहीं देता है, अर्थात् "भौतिक रूप से दो i2c- इंटरफ़ेस उपकरणों को एक एकल A4 और A5 में तार करता है"।
ओलेग Mazurov

मैं हटा नहीं सका, इसलिए मैं एक (शायद) अधिक संतोषजनक उत्तर को संपादित करता हूं
daedalucian

वोल्टेज साझा करना सही नहीं है?
clankill3r

0

I2C फिलिप्स द्वारा विकसित एक डेटा ट्रांसफर प्रोटोकॉल है। इसे दो-तार इंटरफ़ेस के रूप में भी जाना जाता है क्योंकि यह संचार के लिए दो तारों का उपयोग करता है। एससीएल-सीरियल क्लॉक लाइन। एसडीएल-सीरियल डेटा लाइन। तो आप i2c उपकरणों के संबंधित पिन को जोड़ने की जरूरत है, यह एक eeprom है या SCL और माइक्रो कंट्रोलर के SDL पिंस जो आप VDD के लिए एक पुलअप रोकनेवाला के साथ उपयोग कर रहे हैं। चूंकि यह एक पता प्रोटोकॉल है जिसमें प्रत्येक डिवाइस के लिए 7-बिट एड्रेस जुड़ा हुआ है जिसे आप 2 ^ 7 विभिन्न उपकरणों तक संबोधित कर सकते हैं। लेकिन आम तौर पर एक गुलाम डिवाइस का I2C पता डेवलपर द्वारा हार्डवेर किए जाने वाले कुछ बिट्स के साथ पूर्वनिर्धारित होता है। यह एक ही प्रकार के उपकरणों को एक ही बस में विभिन्न हार्डवेयर्ड एड्रेस पार्ट से जोड़ने में मदद करता है।


1
यह सच है, लेकिन यह बेकार है अगर आप एक से अधिक चाहते हैं, जैसे BH1750 प्रकाश-तीव्रता इकाई। मैं उनमें से 4 को चाहता हूं और I2C के दोहरे-बस स्विचिंग से निपटना नहीं चाहता हूं। इसके अलावा, DS3231 जैसे कुछ उपकरणों में आंतरिक पुलअप हैं, इसलिए कोई भी बाहरी पुलअप उनके समानांतर है।
एसडीसोलर

0

साथ ही आपको पुल अप प्रतिरोधों की जांच करनी चाहिए। यदि आप पहले से ही निर्मित बोर्ड का उपयोग करते हैं, न केवल चिप, तो उस बोर्ड में आमतौर पर बोर्ड और बॉश के बीच प्रतिरोधों को खींच दिया जाता है। इसलिए जब आप हर चीज को समानांतर में जोड़ते हैं, तो प्रतिरोधक भी समानांतर में होते हैं, इसलिए कुल अवरोधक मूल्य ड्रॉप और आपका संचार विफल हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.