PCF8574: Arduino के लिए अधिक कनेक्शन पिन प्राप्त करें

पीसीएफ8574

आपने स्वयं को ऐसी स्थिति में पाया होगा जहां आप अपने लिए उपलब्ध इनपुट और आउटपुट की संख्या का विस्तार करना चाहेंगे अर्डिनो बोर्ड, चूँकि आप एक ऐसा प्रोजेक्ट चला रहे हैं जिसके लिए अपेक्षा से अधिक उपकरणों की आवश्यकता है। इन मामलों में आप केवल एक ही काम कर सकते हैं, और वह है इनमें से अधिक कनेक्शन वाले उच्च मॉडल का बोर्ड खरीदने के बारे में सोचना। लेकिन अब साथ PCF8574 Arduino के I/O का विस्तार कर सकता है आसान और सस्ते तरीके से.

यहां हम आपको दिखाएंगे कि PCF8574 क्या है यदि आप इसे नहीं जानते हैं, इसके अलावा यह भी बताएंगे कि इसे आपके Arduino बोर्ड से कैसे जोड़ा जा सकता है, चरण दर चरण समझाया जाएगा और यह कैसे काम करता है...

PCF8574 क्या है?

पीसीएफ8574

El पीसीएफ8574 I2C1 बस के लिए एक डिजिटल इनपुट और आउटपुट (I/O) विस्तारक है। फिलिप्स द्वारा निर्मित यह उपकरण आपको कम पिन2 का उपयोग करके अधिक उपकरणों को नियंत्रित करने के लिए Arduino जैसे प्रोसेसर को कनेक्ट करने की अनुमति देता है। PCF8574 में ओपन ड्रेन कॉन्फ़िगरेशन में CMOS आउटपुट पर आधारित 8 अर्ध-दिशात्मक पिन शामिल हैं।

इसके अलावा, PCF8574 एक कम-शक्ति वाला उपकरण है 2.5V से 6V तक VCC संचालन का समर्थन करता है. इसमें 8-बिट अर्ध-द्विदिशात्मक I/O पोर्ट, लैच्ड आउटपुट, ओपन ड्रेन इंटरप्ट आउटपुट और एलईडी के लिए उच्च वर्तमान ड्राइविंग क्षमता की सुविधा है। दूसरी ओर, इसकी स्टैंड-बाय खपत बहुत कम है, 10 μA से भी कम।

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

  • जब यह आउटपुट के रूप में कार्य करता है, तो यह 25mA होता है जब यह सिंक के रूप में कार्य करता है, अर्थात, जब विद्युत धारा PCF8574 में प्रवाहित होती है। यह डिफ़ॉल्ट कॉन्फ़िगरेशन है.
  • जब यह एक स्रोत के रूप में कार्य करता है तो यह 300µA होता है, अर्थात जब PCF8574 से धारा प्रवाहित होती है। इसी तरह, आपको पता होना चाहिए कि सभी आउटपुट में लैच होते हैं, यानी वे एक रजिस्टर में स्टेट को स्वयं बनाए रखते हैं। हमें केवल तभी कार्य करना होगा जब हम किसी एक आउटपुट की स्थिति को संशोधित करना चाहते हैं।

संचार हो गया है I2C बस के माध्यम से, इसलिए इससे जुड़े उपकरणों से डेटा प्राप्त करना आसान है। इसी तरह, यह ध्यान दिया जाना चाहिए कि इसमें 3 एड्रेस पिन हैं, जो एक ही I8C बस को 2 संभावित कनेक्शन देता है। इसका मतलब है कि केवल 64 पिन का उपयोग करके 2 उपकरणों को नियंत्रित करना संभव है।

पता सेटिंग

इस PCF8574 मॉड्यूल के कुछ मॉडलों में आमतौर पर कॉन्फ़िगरेशन पिन और जंपर्स शामिल होते हैं जैसे कि आप ऊपर की छवि में देखते हैं। दूसरी ओर, अन्य मॉडलों में एक स्विच शामिल होता है जो तीन माइक्रोस्विच के साथ चीजों को आसान बनाता है... जैसा भी हो, वे काम करते हैं पते कॉन्फ़िगर करें I/O पिन की:

A0 A1 A2 पता
0 0 0 0x20
0 0 1 0x21
0 1 0 0x22
0 1 1 0x23
1 0 0 0x24
1 0 1 0x25
1 1 0 0x26
1 1 1 0x27

मूल्य और कहाँ खरीदना है

यह केवल कुछ यूरो में पाया जा सकता है। यह एक उपकरण है काफी सस्ते यह कुछ Arduino मॉडलों के लिए कितना व्यावहारिक हो सकता है जिनमें I/Os की संख्या कम है। इसलिए यदि आप PCF8574 की तलाश में हैं, तो आप इसे विशेष दुकानों में या Amazon, Aliexpress या eBay जैसे बड़े ऑनलाइन प्लेटफ़ॉर्म पर भी पा सकते हैं। उदाहरण के लिए, यहां हम एक की अनुशंसा करते हैं:

PCF8574 को Arduinno से कनेक्ट करना

पैरा PCF8574 विस्तारक को अपने Arduino बोर्ड से कनेक्ट करें, कनेक्शन आरेख काफी सरल है. आपको केवल कनेक्ट करना होगा:

  • SCL पिन PCF8574 बोर्ड पर Arduino के SCL पिन पर अंकित है। यह पिन मॉडल के आधार पर बदल सकता है, लेकिन आमतौर पर यूएनओ जैसे अधिक लोकप्रिय मॉडल पर ए5 पर होता है।
  • विस्तारक के SDA पिन को Arduino के SDA पिन से कनेक्ट करना होगा। वही बात जो मैंने ऊपर बताई है, वह मॉडल के आधार पर बदल सकती है, लेकिन आम तौर पर यह A4 है। यदि संदेह है, तो अपने मॉडल का पिनआउट जांचें।
  • PCF8574 का GND पिन निश्चित रूप से Arduino पर चिह्नित GND से जुड़ा होगा, यानी यह ग्राउंड कनेक्शन है।
  • विस्तारक का Vcc पिन Arduino के 5V से जुड़ा है, इस तरह, GND और Vcc के साथ हमने विस्तारक बोर्ड को पहले ही संचालित कर दिया है ताकि यह काम करना शुरू कर सके।

आपरेशन

एक बार जब PCF8574 Arduino बोर्ड से कनेक्ट हो गया, तो अब यह जानने का समय आ गया है यह कैसे काम करता है. ऐसा करने के लिए, आपको यह ध्यान रखना होगा कि आप पावर पिन के अलावा, दो Arduino पिन का उपयोग करने के बदले में 8 अतिरिक्त पिन प्राप्त कर सकेंगे। दूसरी ओर, आपको कुछ बातों को ध्यान में रखना होगा, और वह यह है कि PCF8 के उन 8574 पिनों में से प्रत्येक पर आपके पास बहुत कम प्रतिरोध पुल-अप अवरोधक के साथ एक MOSFET ट्रांजिस्टर है। ट्रांजिस्टर सक्रिय होने पर यह 100 माइक्रोए की वर्तमान तीव्रता मानता है।

और यह हमें निम्नलिखित परिदृश्य के साथ छोड़ता है:

  • आउटपुट के रूप में कॉन्फ़िगरेशन- जब पिन को आउटपुट के रूप में उपयोग किया जाता है, तो यह करंट सिंक के रूप में कार्य करता है, जैसा कि मैंने ऊपर चर्चा की है, यानी करंट प्रवाहित होता है।
    • कम: कम वोल्टेज पर, यह करंट का संचालन नहीं करता है, लोड = वीडीडी।
    • उच्च: जब उच्च वोल्टेज पर, 25mA तक करंट प्रवाहित हो सकता है, तो लोड GND से जुड़ा होगा।
  • इनपुट के रूप में कॉन्फ़िगरेशन: इसे हमेशा हाई पर सेट किया जाना चाहिए, और इस मामले में यह एक स्रोत के रूप में कार्य करेगा, यानी करंट प्रवाहित होगा।
    • बन्द है: जब बाहरी लोड नहीं दिया जाता है तो पिन पर वोल्टेज जीएनडी पर चला जाता है।
    • खुला: जब कोई बाहरी लोड होता है, तो पिन वोल्टेज Vdd हो जाता है।

Arduino आईडीई कोड

Arduino IDE, डेटा प्रकार, प्रोग्रामिंग

यदि आप Arduino पर इस PCF8574 का उपयोग करने के लिए कोड बनाने के कुछ उदाहरण चाहते हैं, तो इन कोड उदाहरणों का उपयोग करना उतना ही सरल है जिन्हें आप अपनी आवश्यकताओं के अनुसार संशोधित कर सकते हैं:

  • आउटपुट के रूप में कॉन्फ़िगरेशन:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  for (short channel = 0; channel < 8; channel++)
  {
    // Escribir dato en canal 'channel'
    Wire.beginTransmission(pcfAddress);
    Wire.write(~(1 << channel));
    Wire.endTransmission();
    
    // Leer dato de canal
    delay(500);
  }
}
  • इनपुट के रूप में कॉन्फ़िगरेशन:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  short channel = 1;
  byte value = 0;

  // Leer dato de canal 'channel'
  Wire.requestFrom(pcfAddress, 1 << channel);
  if (Wire.available())
  {
    value = Wire.read();
  }
  Wire.endTransmission();

  // Mostrar el valor por puerto serie
  Serial.println(value);
}

याद रखें कि आप भी इसका उपयोग कर सकते हैं PCF8574 के लिए विशेष रूप से बनाई गई लाइब्रेरी जिसमें व्यावहारिक उदाहरण भी शामिल हैं...


पहली टिप्पणी करने के लिए

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।