- आवश्यक घटक
- PCF8591 ADC / DAC मॉड्यूल
- रास्पबेरी पाई में I2C पिंस
- रास्पबेरी पाई के साथ पीसीएफ 8591 एडीसी / डीएसी मॉड्यूल को इंटरफैस करना
- डिजिटल रूपांतरण के अनुरूप (ADC) के लिए पायथन कार्यक्रम
एम्बेडेड इलेक्ट्रॉनिक्स में एनालॉग से डिजिटल रूपांतरण एक बहुत ही महत्वपूर्ण कार्य है, क्योंकि अधिकांश सेंसर एनालॉग वैल्यू के रूप में आउटपुट प्रदान करते हैं और उन्हें माइक्रोकंट्रोलर में फीड करने के लिए जो केवल बाइनरी मान को समझते हैं, हमें उन्हें डिजिटल मूल्यों में बदलना होगा। इसलिए एनालॉग डेटा को प्रोसेस करने में सक्षम होने के लिए, माइक्रोकंट्रोलर्स को एनालॉग से डिजिटल कनवर्टर की आवश्यकता होती है ।
कुछ माइक्रोकंट्रोलर में 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 मॉड्यूल का उपयोग करना
इस ट्यूटोरियल में, हम रास्पबेरी पाई के साथ PCF8591 ADC / DAC मॉड्यूल को इंटरफ़ेस करने का तरीका जानने जा रहे हैं ।
आवश्यक घटक
- रास्पबेरी पाई
- PCF8591 ADC मॉड्यूल
- 100K पॉट
- जंपर केबल
यह माना जाता है कि आपके पास रास्पबेरी पाई है जिसमें नवीनतम रास्पबियन ओएस स्थापित किया गया है और आप जानते हैं कि पोटीन जैसे टर्मिनल सॉफ़्टवेयर का उपयोग करते हुए कैसे पाई में एसएसएच करें। यदि आप रास्पबेरी पाई के लिए नए हैं तो रास्पबेरी पाई के साथ आरंभ करने के लिए इस लेख का पालन करें। फिर भी यदि आप किसी मुद्दे का सामना करते हैं तो रास्पबेरी पाई ट्यूटोरियल के टन हैं जो मदद कर सकते हैं।
PCF8591 ADC / DAC मॉड्यूल
PCF8591 एक 8 बिट एनालॉग से डिजिटल या 8 बिट डिजिटल से एनालॉग कनवर्टर मॉड्यूल है जिसका अर्थ है कि प्रत्येक पिन 256 तक के एनालॉग मूल्यों को पढ़ सकता है। इसमें LDR और थर्मिस्टर सर्किट भी है। इस मॉड्यूल में चार एनालॉग इनपुट और एक एनालॉग आउटपुट है। यह I 2 C संचार पर काम करता है, इसलिए सीरियल घड़ी और सीरियल डेटा पते के लिए SCL और SDA पिन हैं। इसके लिए 2.5-6V आपूर्ति वोल्टेज की आवश्यकता होती है और इसमें कम स्टैंड-बाय करंट होता है। हम मॉड्यूल पर पोटेंशियोमीटर के नॉब को समायोजित करके इनपुट वोल्टेज में भी हेरफेर कर सकते हैं। बोर्ड पर तीन जंपर्स भी हैं। J4 थर्मिस्टर एक्सेस सर्किट का चयन करने के लिए जुड़ा हुआ है, J5 LDR / फोटो रेसिस्टर एक्सेस सर्किट का चयन करने के लिए जुड़ा हुआ हैऔर J6 समायोज्य वोल्टेज एक्सेस सर्किट का चयन करने के लिए जुड़ा हुआ है। बोर्ड डी 1 पर दो एलईडी हैं और डी 2-डी 1 आउटपुट वोल्टेज की तीव्रता दिखाता है और डी 2 आपूर्ति वोल्टेज की तीव्रता को दर्शाता है। उच्च उत्पादन या आपूर्ति वोल्टेज, एलईडी डी 1 या डी 2 की तीव्रता अधिक है। आप VCC पर या AOUT पिन पर एक पोटेंशियोमीटर का उपयोग करके भी इन एल ई डी का परीक्षण कर सकते हैं।
रास्पबेरी पाई में I2C पिंस
रास्पबेरी पाई के साथ PCF8591 का उपयोग करने के लिए, सबसे पहले रास्पबेरी पाई I2C पोर्ट पिनों को जानना और रास्पबेरी पाई में I2C पोर्ट को कॉन्फ़िगर करना है।
नीचे रास्पबेरी पाई 3 मॉडल बी + का पिन आरेख है, और इस ट्यूटोरियल में I2C पिन GPIO2 (SDA) और GPIO3 (SCL) का उपयोग किया जाता है।
रास्पबेरी पाई में I2C को कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से, I2C रास्पबेरी पाई में अक्षम है। तो पहले यह सक्षम होना चाहिए। रास्पबेरी पाई में I2C को सक्षम करने के लिए
1. टर्मिनल पर जाएं और sudo raspi-config टाइप करें ।
2. अब रास्पबेरी पाई सॉफ्टवेयर कॉन्फ़िगरेशन टूल दिखाई देता है।
3. इंटरफेसिंग विकल्पों का चयन करें और फिर I2C को सक्षम करें।
4. I2C को सक्षम करने के बाद पाई को रिबूट करें।
रास्पबेरी पाई का उपयोग करके PCF8591 का I2C पता स्कैन करना
अब PCF8591 आईसी के साथ संचार शुरू करने के लिए, रास्पबेरी पाई को अपना I2C पता जानना चाहिए। पता खोजने के लिए पहले पीसीए 8591 के एसडीए और एससीएल पिन को रास्पबेरी पाई के एसडीए और एससीएल पिन से कनेक्ट करें। इसके अलावा + 5 वी और जीएनडी पिन को कनेक्ट करें।
अब टर्मिनल खोलें और कनेक्ट किए गए I2C डिवाइस का पता जानने के लिए कमांड के नीचे टाइप करें, sudo i2cdetect –y 1 या sudo i2cdetect –y 0
I2C पते को खोजने के बाद अब सर्किट बनाने और रास्पबेरी पाई के साथ PCF8591 का उपयोग करने के लिए आवश्यक लाइब्रेरी स्थापित करने का समय है ।
रास्पबेरी पाई के साथ पीसीएफ 8591 एडीसी / डीएसी मॉड्यूल को इंटरफैस करना
रास्पबेरी पाई के साथ PCF8591 के इंटरफेस के लिए सर्किट आरेख सरल है। इस इंटरफेसिंग उदाहरण में, हम किसी भी एनालॉग पिन से एनालॉग वैल्यू को पढ़ेंगे और इसे रास्पबेरी पाई टर्मिनल पर दिखाएंगे। हम 100K पॉट का उपयोग करके मान बदल सकते हैं।
रास्पबेरी पाई के GPIO2 और GPIO को VCC और GND से कनेक्ट करें। इसके बाद, क्रमशः SDA और SCL को GPIO3 और GPIO5 से कनेक्ट करें। अंत में AIN0 के साथ एक 100K पॉट कनेक्ट करें। आप टर्मिनल पर दिखाने के बजाय ADC मान प्रदर्शित करने के लिए 16x2 LCD भी जोड़ सकते हैं। यहाँ रास्पबेरी पाई के साथ 16x2 एलसीडी को रखने के बारे में अधिक जानें।
डिजिटल रूपांतरण के अनुरूप (ADC) के लिए पायथन कार्यक्रम
पूरा कार्यक्रम और काम वीडियो इस ट्यूटोरियल के अंत में दिया जाता है।
सबसे पहले, I 2 C बस संचार और समय पुस्तकालय के लिए smbus पुस्तकालय का आयात करें ताकि मूल्य को छापने के बीच एक नींद का समय दिया जा सके।
आयात smbus आयात समय
अब कुछ चरों को परिभाषित करते हैं। पहले चर में I 2 C बस का पता है और दूसरे चर में पहले अनुरूप इनपुट पिन का पता है।
पता = 0x48 A0 = 0x40
अगला, हमने लाइब्रेरी स्मब के फ़ंक्शन एसएमबीस (1) का एक उद्देश्य बनाया है
बस = smbus.SMBus (1)
अब, जबकि पहली पंक्ति आईसी को पहले एनालॉग इनपुट पिन पर एनालॉग माप बनाने के लिए कहती है। दूसरी पंक्ति एक वैरिएबल मान में एनालॉग पिन पर पढ़े गए पते को संग्रहीत करती है । अंत में मान को प्रिंट करें।
जबकि सत्य: Bus.write_byte (पता, A0) मान = Bus.read_byte (पता) प्रिंट (मान) समय. स्लीप (0.1)
अब अंत में.py के साथ कुछ फ़ाइल में अजगर कोड सहेजें और नीचे दिए गए कोड का उपयोग करके रास्पबेरी पाई टर्मिनल में कोड चलाएं
python filename.py
कोड चलाने से पहले सुनिश्चित करें कि आपने I 2 C संचार सक्षम किया है और सभी पिन जुड़े हुए हैं जैसा कि आरेख में दिखाया गया है, अन्यथा यह त्रुटियों को दिखाएगा। एनालॉग वैल्यू को नीचे की तरह टर्मिनल पर दिखाना शुरू करना चाहिए। पॉट के नॉब को समायोजित करें, और आप मूल्यों में क्रमिक परिवर्तन देखेंगे। में कार्यक्रम चलाने के बारे में अधिक जानें
पूरा अजगर कोड और वीडियो नीचे दिया गया है।