एम्बेडेड इलेक्ट्रॉनिक्स में एनालॉग से डिजिटल रूपांतरण एक बहुत ही महत्वपूर्ण कार्य है, क्योंकि अधिकांश सेंसर एनालॉग वैल्यू के रूप में आउटपुट प्रदान करते हैं और उन्हें माइक्रोकंट्रोलर में फीड करने के लिए जो केवल बाइनरी मान को समझते हैं, हमें उन्हें डिजिटल मूल्यों में बदलना होगा। इसलिए एनालॉग डेटा को प्रोसेस करने में सक्षम होने के लिए, माइक्रोकंट्रोलर्स को एनालॉग से डिजिटल कनवर्टर की आवश्यकता होती है ।
कुछ माइक्रोकंट्रोलर में ADC जैसे कि Arduino, MSP430, PIC16F877A इनबिल्ट होते हैं, लेकिन कुछ माइक्रोकंट्रोलर के पास 8051, रास्पबेरी पाई आदि जैसे नहीं होते हैं और हमें ADC0804, ADC0808 जैसे डिजिटल कनवर्टर ICC के लिए कुछ बाहरी एनालॉग का उपयोग करना पड़ता है। नीचे आप विभिन्न माइक्रोकंट्रोलर के साथ एडीसी के विभिन्न उदाहरण पा सकते हैं:
- Arduino Uno में ADC का उपयोग कैसे करें?
- रास्पबेरी पाई एडीसी ट्यूटोरियल
- 8051 माइक्रोकंट्रोलर के साथ ADC0808 को इंटरफैस करना
- AVR माइक्रोकंट्रोलर का उपयोग करके 0-25V डिजिटल वोल्टमीटर
- STM32F103C8 में ADC का उपयोग कैसे करें
- MSP430G2 में ADC का उपयोग कैसे करें
- ARM7 LPC2148 में ADC का उपयोग कैसे करें
- MPLAB और XC8 के साथ PIC माइक्रोकंट्रोलर के ADC मॉड्यूल का उपयोग करना
इस ट्यूटोरियल में, हम यह जाँचने जा रहे हैं कि Arduino के साथ PCF8591 ADC / DAC मॉड्यूल को कैसे इंटरफ़ेस करें।
आवश्यक घटक
- Arduino UNO
- PCF8591 ADC मॉड्यूल
- 100K पॉट
- जंपर केबल
PCF8591 ADC / DAC मॉड्यूल
PCF8591 एक 8 बिट एनालॉग से डिजिटल या 8 बिट डिजिटल से एनालॉग कनवर्टर मॉड्यूल है जिसका अर्थ है कि प्रत्येक पिन 256 तक के एनालॉग मूल्यों को पढ़ सकता है। इसमें LDR और थर्मिस्टर सर्किट भी है। इस मॉड्यूल में चार एनालॉग इनपुट और एक एनालॉग आउटपुट है। यह I 2 C संचार पर काम करता है, इसलिए सीरियल घड़ी और सीरियल डेटा पते के लिए SCL और SDA पिन हैं। इसके लिए 2.5-6V आपूर्ति वोल्टेज की आवश्यकता होती है और इसमें कम स्टैंड-बाय करंट होता है। हम मॉड्यूल पर पोटेंशियोमीटर के नॉब को समायोजित करके इनपुट वोल्टेज में भी हेरफेर कर सकते हैं। बोर्ड पर तीन जंपर्स भी हैं। J4 थर्मिस्टर एक्सेस सर्किट का चयन करने के लिए जुड़ा हुआ है, J5 LDR / फोटो रेसिस्टर एक्सेस सर्किट का चयन करने के लिए जुड़ा हुआ है और J6 समायोज्य वोल्टेज एक्सेस सर्किट का चयन करने के लिए जुड़ा हुआ है। इन सर्किट तक पहुंचने के लिए आपको इन जंपर्स के पते का उपयोग करना होगा: J6 के लिए 0x50, J5 के लिए 0x60 और J4 के लिए 0x70। बोर्ड डी 1 पर दो एलईडी हैं और डी 2-डी 1 आउटपुट वोल्टेज की तीव्रता दिखाता है और डी 2 आपूर्ति वोल्टेज की तीव्रता को दर्शाता है। उच्च उत्पादन या आपूर्ति वोल्टेज, एलईडी डी 1 या डी 2 की तीव्रता अधिक है। आप VCC पर या AOUT पिन पर एक पोटेंशियोमीटर का उपयोग करके भी इन एल ई डी का परीक्षण कर सकते हैं।
Arduino के साथ PCF8591 ADC / DAC मॉड्यूल को इंटरफैस करना
पूरा कार्यक्रम और काम वीडियो इस ट्यूटोरियल के अंत में दिया जाता है।
सबसे पहले, हमें I 2 C संचार और एलसीडी डिस्प्ले के लिए पुस्तकालय को परिभाषित करने की आवश्यकता है ।
#शामिल
फिर कुछ मैक्रोज़ को परिभाषित करें। पहला मैक्रो आईसी के लिए डेटा बस के पते को परिभाषित करने के लिए है और दूसरा मैक्रो मॉड्यूल के पहले इनपुट पिन के पते को परिभाषित करने के लिए है, जहां पॉट से इनपुट दिया गया है।
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
अगले Arduino के साथ एलसीडी के पिन कनेक्शन को परिभाषित करें और उस मूल्य को इनिशियलाइज़ करें जो हमें एनालॉग पिन पर मिल रहा है।
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; लिक्विड क्रिस्टल एलसीडी (आरएस, एन, डी 4, डी 5, डी 6, डी 7); int value = 0;
अब, सेटअप फ़ंक्शन पर आते हैं । यहाँ, पहली पंक्ति में हमने I 2 C संचार आरंभ किया है । और दूसरी पंक्ति में, हमने एलसीडी डिस्प्ले को इनिशियलाइज़ किया है, जिस पर हम एनालॉग वैल्यूज़ को प्रिंट कर रहे हैं। यहाँ Arduino के साथ 16x2 LCD के इंटरफेस के बारे में अधिक जानें।
शून्य सेटअप () { वायर.begin (); lcd.begin (16,2); }
में पाश समारोह, पहली पंक्ति प्रसारण शुरू करने के लिए, यानी यह PCF8591 शुरू होता है। दूसरी पंक्ति आईसी को पहले एनालॉग इनपुट पिन पर एनालॉग माप बनाने के लिए कहती है। तीसरी लाइन ट्रांसमिशन को समाप्त करती है और चौथी लाइन को एनालॉग पिन से मापा गया डेटा मिलता है।
शून्य लूप () { वायर.beginTransmission (PCF8591); वायर.राइट (AIn0); वायर.endTransmission (); वायर.requestFrom (PCF8591, 1);
अगले भाग में, एनालॉग पिन से पढ़ी गई वैल्यू को पहले से परिभाषित वैल्यू वैरिएबल पर रखें। और अगली लाइनों में, उस मान को एलसीडी पर प्रिंट करें।
मूल्य = वायर.्रेड (); lcd.print ("ADC मान ="); lcd.print (मान); देरी (500); lcd.clear ();;
अंत में Arduino में कोड अपलोड करें और इसे चलाएं। एनालॉग डिस्प्ले एलसीडी डिस्प्ले पर दिखाई देने लगेगा। पॉट के नॉब को समायोजित करें, और आप मूल्यों में क्रमिक परिवर्तन देखेंगे।