विषयसूची:

PCF8591 (i2c एनालॉग I/O विस्तारक) तेजी से आसान उपयोग: 9 कदम
PCF8591 (i2c एनालॉग I/O विस्तारक) तेजी से आसान उपयोग: 9 कदम

वीडियो: PCF8591 (i2c एनालॉग I/O विस्तारक) तेजी से आसान उपयोग: 9 कदम

वीडियो: PCF8591 (i2c एनालॉग I/O विस्तारक) तेजी से आसान उपयोग: 9 कदम
वीडियो: Arduino analog port expander - pcf8591 with I2C protocol 2024, जुलाई
Anonim
PCF8591 (i2c एनालॉग I/O विस्तारक) तेजी से आसान उपयोग
PCF8591 (i2c एनालॉग I/O विस्तारक) तेजी से आसान उपयोग

Arduino और esp8266 के साथ i2c pcf8591 IC का उपयोग करने के लिए पुस्तकालय।

यह आईसी (4 तक) एनालॉग इनपुट और/या 1 एनालॉग आउटपुट जैसे माप वोल्टेज को नियंत्रित कर सकता है, थर्मिस्टर मान पढ़ सकता है या एक एलईडी फीका कर सकता है।

एनालॉग वैल्यू पढ़ सकते हैं और केवल 2 वायर (ESP-01 के लिए बिल्कुल सही) के साथ एनालॉग वैल्यू लिख सकते हैं।

मैं ऑपरेशन के न्यूनतम सेट के साथ, इस आईसी के उपयोग को सरल बनाने की कोशिश करता हूं।

आप मेरी साइट https://www.mischianti.org/2019/01/03/pcf8591-i2c-analog-i-o-expander/ पर अद्यतन संस्करण पा सकते हैं।

चरण 1: I2c कैसे काम करता है

I2c कैसे काम करता है
I2c कैसे काम करता है

I2C इसके दो तारों, SDA (डेटा लाइन) और SCL (क्लॉक लाइन) के साथ काम करता है।

ये दोनों लाइनें ओपन-ड्रेन हैं, लेकिन प्रतिरोधों के साथ खींची गई हैं।

आमतौर पर लाइन पर एक मास्टर और एक या एक से अधिक दास होते हैं, हालांकि कई स्वामी हो सकते हैं, लेकिन हम इसके बारे में बाद में बात करेंगे।

स्वामी और दास दोनों डेटा संचारित या प्राप्त कर सकते हैं, इसलिए, एक उपकरण इन चार राज्यों में से एक में हो सकता है: मास्टर ट्रांसमिट, मास्टर रिसीव, स्लेव ट्रांसमिट, स्लेव रिसीव।

चरण 2:

आप यहां मेरी लाइब्रेरी पा सकते हैं।

डाउनलोड करने के लिए।

ऊपरी दाएं कोने में डाउनलोड बटन पर क्लिक करें, असम्पीडित फ़ोल्डर का नाम बदलें PCF8591।

जांचें कि PCF8591 फ़ोल्डर में PCF8591.cpp और PCF8591.h है।

PCF8591 लाइब्रेरी फोल्डर को अपने /लाइब्रेरी/फोल्डर में रखें।

यदि आपकी पहली लाइब्रेरी है तो आपको लाइब्रेरी सबफ़ोल्डर बनाने की आवश्यकता हो सकती है।

आईडीई को पुनरारंभ करें।

चरण 3: उपयोग

कंस्ट्रक्टर: आपको i2c का पता देना होगा (पते की जांच करने के लिए इस गाइड I2cScanner का उपयोग करें)

PCF8591 (uint8_t पता);

esp8266 के लिए यदि आप एसडीए ई एससीएल पिन निर्दिष्ट करना चाहते हैं तो इसका उपयोग करें:

PCF8591(uint8_t पता, uint8_t sda, uint8_t scl);

चरण 4: मूल्य पढ़ें

मूल्य पढ़ें
मूल्य पढ़ें

जैसा कि आप छवि में देख सकते हैं IC में 4 एनालॉग इनपुट और 1 एनालॉग आउटपुट है।

तो एक ट्रैसमिशन में सभी एनालॉग इनपुट को पढ़ने के लिए आप कर सकते हैं (मान 0 से 255 तक है):

PCF8591::AnalogInput ai = pcf8591.analogReadAll ();

सीरियल.प्रिंट (ai.ain0); सीरियल.प्रिंट ("-"); सीरियल.प्रिंट (ai.ain1); सीरियल.प्रिंट ("-"); सीरियल.प्रिंट (ai.ain2); सीरियल.प्रिंट ("-"); Serial.println(ai.ain3);

यदि आप एकल एनालॉग इनपुट या चैनल पढ़ना चाहते हैं:

इंट एना = pcf8591.analogRead (AIN0); // एनालॉग 0 पढ़ें

चरण 5: चैनल से घाटी पढ़ें

चैनल से घाटी पढ़ें
चैनल से घाटी पढ़ें

इस आईसी में कई प्रकार के रीड हैं और आप एनालॉग इनपुट या एनालॉग चैनल का उपयोग कर सकते हैं (जब आप सिंगल रीड एनालॉग इनपुट का उपयोग करते हैं और चैनल चित्रों में होते हैं)।

उदाहरण के लिए दो अंतर इनपुट में चैनल 0 का मान पढ़ने के लिए आपको यह करना होगा:

इंट एना = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // एनालॉग 0. पढ़ें

चरण 6: मूल्य लिखें

यदि आप एक एनालॉग वैल्यू लिखना चाहते हैं तो आपको अवश्य करना चाहिए (मान 0 से 255 तक है):

pcf8591.analogWrite(128);

चरण 7: अतिरिक्त सुविधाएँ

एक लिखने वाले वोल्टेज को पढ़ने के लिए अतिरिक्त सुविधा है: वोल्टेज की गणना के लिए आपको कुछ पैरामीटर पास करना होगा:

  • माइक्रोकंट्रोलर रेफरेंस वोल्टेज: माइक्रोकंट्रोलर वोल्टेज से वोल्टेज प्राप्त करें (एएसपी 3.3v फिक्स्ड के लिए केवल एवीआर नं esp8266)
  • संदर्भवोल्टेज: यदि माइक्रोकंट्रोलरसंदर्भ वोल्टेज गलत है तो यह मान लेंकमांड हैं:

शून्य वोल्टेजराइट (फ्लोट वैल्यू, बूल माइक्रोकंट्रोलर रेफरेंस वोल्टेज = ट्रू, फ्लोट रेफरेंस वोल्टेज = 5.0);

फ्लोट वोल्टेजरीड (uint8_t एनालॉगपिन, बूल माइक्रोकंट्रोलर रेफरेंस वोल्टेज = ट्रू, फ्लोट रेफरेंस वोल्टेज = 5.0);

एक उदाहरण है:

pcf8591.voltageWrite(2.7); // 2.7 वोल्ट आउटपुट

देरी (3000);

फ्लोट ana0V = pcf8591.voltageRead (AIN0); // एनालॉग 0. से वोल्टेज पढ़ें

Serial.println (ana0V);

चरण 8: उदाहरण कनेक्शन आरेख

उदाहरण कनेक्शन आरेख
उदाहरण कनेक्शन आरेख

चरण 9: धन्यवाद

i2c परियोजना श्रृंखला (संग्रह):

  • तापमान आर्द्रता सेंसर
  • एनालॉग विस्तारक
  • डिजिटल विस्तारक
  • एलसीडी प्रदर्शन

सिफारिश की: