विषयसूची:

रिले इंटरफेस (I2C) का उपयोग करके एमसीपी-२३००८ का अनुप्रयोग:: ६ कदम
रिले इंटरफेस (I2C) का उपयोग करके एमसीपी-२३००८ का अनुप्रयोग:: ६ कदम

वीडियो: रिले इंटरफेस (I2C) का उपयोग करके एमसीपी-२३००८ का अनुप्रयोग:: ६ कदम

वीडियो: रिले इंटरफेस (I2C) का उपयोग करके एमसीपी-२३००८ का अनुप्रयोग:: ६ कदम
वीडियो: Kit build: Wi-Fi controlled relays 2024, जुलाई
Anonim
रिले इंटरफेस (I2C) का उपयोग करके MCP-23008 का अनुप्रयोग
रिले इंटरफेस (I2C) का उपयोग करके MCP-23008 का अनुप्रयोग

नमस्ते

शुभकामनाएँ..!!

मैं (सोमांशु चौधरी) Dcube टेक वेंचर्स की ओर से Arduino नैनो और MCP23008 का उपयोग करके I2C प्रोटोकॉल के माध्यम से रिले को नियंत्रित करने जा रहा हूं।

चरण 1: अवलोकन

अवलोकन
अवलोकन
  • MCP23X08 डिवाइस I2C बस या SPI अनुप्रयोगों के लिए 8-बिट, सामान्य उद्देश्य, समानांतर I/O विस्तार प्रदान करता है।
  • MCP23X08 में इनपुट, आउटपुट और पोलरिटी चयन के लिए कई 8-बिट कॉन्फ़िगरेशन रजिस्टर होते हैं। सिस्टम मास्टर I/O को I/O कॉन्फ़िगरेशन बिट्स लिखकर इनपुट या आउटपुट के रूप में सक्षम कर सकता है। प्रत्येक इनपुट या आउटपुट का डेटा संबंधित इनपुट या आउटपुट रजिस्टर में रखा जाता है। इनपुट पोर्ट रजिस्टर की ध्रुवता को पोलारिटी इनवर्जन रजिस्टर के साथ उलटा किया जा सकता है। सभी रजिस्टरों को सिस्टम मास्टर द्वारा पढ़ा जा सकता है।
  • डेटाशीट लिंक:

चरण 2: आपको क्या चाहिए / लिंक

आपको क्या चाहिए / लिंक
आपको क्या चाहिए / लिंक

1. Arduino नैनो लिंक:

2. Arduino नैनो लिंक के लिए शील्ड:

3.यूएसबी केबल टाइप ए से माइक्रो टाइप बी 6 फीट लंबा

4. I²C केबल लिंक:

5. आठ एसपीडीटी आई²सी नियंत्रित रिले

6. एडेप्टर लिंक:

चरण 3: सर्किट आरेख

सर्किट आरेख
सर्किट आरेख
सर्किट आरेख
सर्किट आरेख

चरण 4: प्रोग्रामिंग - I

प्रोग्रामिंग - आई
प्रोग्रामिंग - आई
प्रोग्रामिंग - आई
प्रोग्रामिंग - आई
  • इस कोड में, मैं Function Programming Paradigm का उपयोग करता हूं
  • मैंने फ़ंक्शन परिभाषा और फ़ंक्शन कॉलिंग के लिए अलग-अलग टैब का उपयोग किया

टैब के तहत कोड क्यू:

// सरल फ़ंक्शन कॉलिंग कोड

#शून्य सेटअप शामिल करें ()

{

// MCP23008 का I2C पता

#एमसीपी_एडीडीआर 0x20 परिभाषित करें

// मास्टर के रूप में I2C बस में शामिल हों

वायर.बेगिन ();

// सीरियल कम्युनिकेशन शुरू करें और बॉड रेट सेट करें

सीरियल.बेगिन (९६००);

// I2C बस पर दिए गए डिवाइस के साथ प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

// IODIR चुनें - I/O डायरेक्शन रजिस्टर रजिस्टर

वायर.राइट (0x00);

// आवश्यक ऑपरेशन (आउटपुट) का चयन करें

वायर.राइट (0x00);

// कॉन्फ़िगरेशन रजिस्टर चुनें

वायर.राइट (0x05);

// आवश्यक ऑपरेशन का चयन करें

वायर.राइट (0x0E);

// अंत संचरण

वायर.एंडट्रांसमिशन ();

}

शून्य लूप ()

{

a1_on ();

देरी (1000);

a1_off ();

देरी (1000);

a2_on ();

देरी (1000);

a2_off ();

देरी (1000);

a3_on ();

देरी (1000);

a3_off ();

देरी (1000);

a4_on ();

देरी (1000);

a4_off ();

देरी (1000);

a5_on ();

देरी (1000);

a5_off ();

देरी (1000);

a6_on ();

देरी (1000);

a6_off ();

देरी (1000);

a7_on ();

देरी (1000);

a7_off ();

देरी (1000);

a8_on ();

देरी (1000);

a8_off ();

}

टैब Q1 के अंतर्गत कोड:

// यह कोड बोर्ड पर रिले 1 को चालू और बंद करने के लिए है

शून्य a1_on() {

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x01);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a1_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

टैब के अंतर्गत कोड q2:

// यह कोड बोर्ड पर रिले 2 को चालू और बंद करना है

शून्य a2_on () {

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x02);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a2_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

टैब के अंतर्गत कोड q3: // यह कोड बोर्ड पर रिले 3 को चालू और बंद करने के लिए है

शून्य a3_on ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x04);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a3_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

चरण 5: प्रोग्रामिंग - II

प्रोग्रामिंग - II
प्रोग्रामिंग - II

टैब Q4 के तहत कोड:

// यह कोड बोर्ड पर रिले 4 को चालू और बंद करना है

शून्य a4_on ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x08);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a4_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

टैब क्यू5 के तहत कोड:

// यह कोड बोर्ड पर रिले 5 को चालू और बंद करना है

शून्य a5_on ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x10);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a5_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

टैब के अंतर्गत कोड q6: // यह कोड बोर्ड पर रिले 6 को चालू और बंद करने के लिए है

शून्य a6_on ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x20);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a6_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

टैब के तहत कोड q7: // यह कोड बोर्ड पर रिले 7 को चालू और बंद करने के लिए है

शून्य a7_on() {

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x40);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a7_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

टैब के अंतर्गत कोड q8: // यह कोड बोर्ड पर रिले 8 को चालू और बंद करने के लिए है

शून्य a8_on() {

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x80);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

शून्य a8_off ()

{

// प्रसारण शुरू करें

Wire.beginTransmission (MCP_ADDR);

वायर.राइट (0x09);

वायर.राइट (0x00);

देरी (1800);

Wire.requestFrom (MCP_ADDR, 1);

इंट जीपीआईओ = वायर.रीड ();

वायर.एंडट्रांसमिशन ();

// स्क्रीन पर आउटपुट

Serial.print ("GPIO मान:");

Serial.println (GPIO, BIN);

}

चरण 6: वीडियो

अधिक पूछताछ के लिए हमारी साइट पर जाने के लिए स्वतंत्र महसूस करें:

www.dcubetechnologies.com

सिफारिश की: