विषयसूची:
- चरण 1: अवलोकन
- चरण 2: आपको क्या चाहिए / लिंक
- चरण 3: सर्किट आरेख
- चरण 4: प्रोग्रामिंग - I
- चरण 5: प्रोग्रामिंग - II
- चरण 6: वीडियो
वीडियो: रिले इंटरफेस (I2C) का उपयोग करके एमसीपी-२३००८ का अनुप्रयोग:: ६ कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
नमस्ते
शुभकामनाएँ..!!
मैं (सोमांशु चौधरी) 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
टैब 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
सिफारिश की:
I2C सेंसर इंटरफेस के साथ शुरुआत करना ?? - ESP32s का उपयोग करके अपने MMA8451 को इंटरफ़ेस करें: 8 कदम
I2C सेंसर इंटरफेस के साथ शुरुआत करना ?? - ESP32s का उपयोग करके अपने MMA8451 को इंटरफ़ेस करें: इस ट्यूटोरियल में, आप कंट्रोलर (Arduino, ESP32, ESP8266, ESP12 NodeMCU) के साथ काम करने वाले I2C डिवाइस (एक्सेलेरोमीटर) को शुरू करने, कनेक्ट करने और प्राप्त करने के तरीके के बारे में जानेंगे।
Arduino कंट्रोल रिले मॉड्यूल का उपयोग करके स्मार्ट होम कैसे बनाएं - गृह स्वचालन विचार: 15 कदम (चित्रों के साथ)
Arduino कंट्रोल रिले मॉड्यूल का उपयोग करके स्मार्ट होम कैसे बनाएं | होम ऑटोमेशन आइडियाज: इस होम ऑटोमेशन प्रोजेक्ट में, हम एक स्मार्ट होम रिले मॉड्यूल डिजाइन करेंगे जो 5 घरेलू उपकरणों को नियंत्रित कर सकता है। इस रिले मॉड्यूल को मोबाइल या स्मार्टफोन, आईआर रिमोट या टीवी रिमोट, मैनुअल स्विच से नियंत्रित किया जा सकता है। यह स्मार्ट रिले भी आर को समझ सकता है
Arduino का उपयोग करके इंटरनेट का उपयोग करके पूरी दुनिया में नियंत्रण का नेतृत्व किया: 4 कदम
Arduino का उपयोग करके इंटरनेट का उपयोग करके पूरी दुनिया में नियंत्रण का नेतृत्व किया: नमस्ते, मैं ऋतिक हूं। हम आपके फ़ोन का उपयोग करके एक इंटरनेट नियंत्रित एलईडी बनाने जा रहे हैं। हम Arduino IDE और Blynk जैसे सॉफ़्टवेयर का उपयोग करने जा रहे हैं। यह सरल है और यदि आप सफल होते हैं तो आप जितने चाहें उतने इलेक्ट्रॉनिक घटकों को नियंत्रित कर सकते हैं जो हमें चाहिए: हार्डवेयर:
Arduino UNO का उपयोग करके ड्रोन कैसे बनाएं - माइक्रोकंट्रोलर का उपयोग करके क्वाडकॉप्टर बनाएं: 8 कदम (चित्रों के साथ)
Arduino UNO का उपयोग करके ड्रोन कैसे बनाएं | माइक्रोकंट्रोलर का उपयोग करके क्वाडकॉप्टर बनाएं: परिचय मेरे यूट्यूब चैनल पर जाएंएक ड्रोन खरीदने के लिए एक बहुत महंगा गैजेट (उत्पाद) है। इस पोस्ट में मैं चर्चा करने जा रहा हूँ कि मैं इसे सस्ते में कैसे बना सकता हूँ ?? और आप इसे सस्ते दाम पर कैसे बना सकते हैं … वैसे भारत में सभी सामग्री (मोटर, ईएससी
I2C / IIC एलसीडी डिस्प्ले - Arduino के साथ SPI से IIC मॉड्यूल का उपयोग करके I2C LCD डिस्प्ले में SPI LCD का उपयोग करें: 5 चरण
I2C / IIC एलसीडी डिस्प्ले | Arduino के साथ I2C LCD डिस्प्ले के लिए SPI से IIC मॉड्यूल का उपयोग करते हुए SPI LCD का उपयोग करें: हाय दोस्तों चूंकि एक सामान्य SPI LCD 1602 में कनेक्ट करने के लिए बहुत सारे तार होते हैं, इसलिए इसे arduino के साथ इंटरफ़ेस करना बहुत मुश्किल होता है, लेकिन बाजार में एक मॉड्यूल उपलब्ध है जो कर सकता है SPI डिस्प्ले को IIC डिस्प्ले में बदलें तो आपको केवल 4 तारों को जोड़ने की आवश्यकता है