इस लेख में हम देखेंगे कि I2C इंटरफ़ेस (ay-tu-si, i-two-tse) क्या है, इसकी विशेषताएं क्या हैं और इसके साथ कैसे काम करना है।
यह आवश्यक है
- - अरुडिनो;
- - डिजिटल पोटेंशियोमीटर AD5171;
- - प्रकाश उत्सर्जक डायोड;
- - 220 ओम रोकनेवाला;
- - 4.7 kOhm के लिए 2 प्रतिरोधक;
- - तारों को जोड़ना।
अनुदेश
चरण 1
IIC सीरियल कम्युनिकेशन प्रोटोकॉल (जिसे I2C - इंटर-इंटीग्रेटेड सर्किट भी कहा जाता है) डेटा ट्रांसफर करने के लिए दो द्विदिश संचार लाइनों का उपयोग करता है, जिसे SDA (सीरियल डेटा) बस और SCL (सीरियल क्लॉक) बस कहा जाता है। दो बिजली लाइनें भी हैं। एसडीए और एससीएल बसों को प्रतिरोधों के माध्यम से पावर बस तक खींचा जाता है।
नेटवर्क में कम से कम एक मास्टर है जो डेटा ट्रांसमिशन शुरू करता है और सिंक्रोनाइज़ेशन सिग्नल उत्पन्न करता है। नेटवर्क में दास भी होते हैं जो मास्टर के अनुरोध पर डेटा संचारित करते हैं। प्रत्येक दास डिवाइस का एक अनूठा पता होता है जिस पर मास्टर उसे संबोधित करता है। डिवाइस का पता पासपोर्ट (डेटाशीट) में दर्शाया गया है। 127 उपकरणों को एक I2C बस से जोड़ा जा सकता है, जिसमें कई मास्टर शामिल हैं। संचालन के दौरान उपकरणों को बस से जोड़ा जा सकता है, अर्थात। यह गर्म प्लगिंग का समर्थन करता है।
चरण दो
Arduino I2C इंटरफ़ेस पर काम करने के लिए दो पोर्ट का उपयोग करता है। उदाहरण के लिए, Arduino UNO और Arduino Nano में, एनालॉग पोर्ट A4 SDA से मेल खाता है, एनालॉग पोर्ट A5 SCL से मेल खाता है।
अन्य बोर्ड मॉडल के लिए:
Arduino Pro और Pro Mini - A4 (SDA), A5 (SCL)
अरुडिनो मेगा - 20 (एसडीए), 21 (एससीएल)
अरुडिनो लियोनार्डो - 2 (एसडीए), 3 (एससीएल)
Arduino ड्यू - 20 (SDA), 21 (SCL), SDA1, SCL1
चरण 3
I2C बस के माध्यम से उपकरणों के साथ डेटा के आदान-प्रदान की सुविधा के लिए, Arduino के लिए एक मानक "वायर" पुस्तकालय लिखा गया है। इसके निम्नलिखित कार्य हैं:
प्रारंभ (पता) - पुस्तकालय का प्रारंभ और I2C बस से कनेक्शन; यदि कोई पता निर्दिष्ट नहीं है, तो कनेक्टेड डिवाइस को मास्टर माना जाता है; 7-बिट एड्रेसिंग का उपयोग किया जाता है;
requestFrom () - मास्टर द्वारा दास से एक निश्चित संख्या में बाइट्स का अनुरोध करने के लिए उपयोग किया जाता है;
startTransmission (पता) - एक विशिष्ट पते पर दास डिवाइस पर डेटा स्थानांतरण की शुरुआत;
एंडट्रांसमिशन () - दास को डेटा ट्रांसमिशन की समाप्ति;
लिखना () - अनुरोध के जवाब में दास से डेटा लिखना;
उपलब्ध () - दास से प्राप्त जानकारी के बाइट्स की संख्या लौटाता है;
पढ़ें () - दास से स्वामी को या स्वामी से दास को हस्तांतरित बाइट पढ़ें;
onReceive () - उस फ़ंक्शन को इंगित करता है जिसे कॉल करने के लिए दास को मास्टर से ट्रांसमिशन प्राप्त होता है;
onRequest () - एक फ़ंक्शन को कॉल करने के लिए इंगित करता है जब मास्टर को दास से ट्रांसमिशन प्राप्त होता है।
चरण 4
आइए देखें कि Arduino का उपयोग करके I2C बस के साथ कैसे काम किया जाए।
सबसे पहले, हम सर्किट को इकट्ठा करेंगे, जैसा कि चित्र में दिखाया गया है। हम AD5171 64-स्थिति वाले डिजिटल पोटेंशियोमीटर का उपयोग करके एलईडी की चमक को नियंत्रित करेंगे, जो I2C बस से जुड़ता है। जिस पते पर हम पोटेंशियोमीटर का उल्लेख करेंगे वह 0x2c (दशमलव में 44) है।
चरण 5
अब आइए "वायर" लाइब्रेरी के उदाहरणों से एक स्केच खोलें:
फ़ाइल -> नमूने -> तार -> digital_potentiometer. आइए इसे Arduino मेमोरी में लोड करें। आइए इसे चालू करें।
आप देखते हैं, एलईडी की चमक चक्रीय रूप से बढ़ती है, और फिर अचानक निकल जाती है। इस मामले में, हम I2C बस के माध्यम से Arduino का उपयोग करके पोटेंशियोमीटर को नियंत्रित करते हैं।