विषयसूची:

Arduino AREF पिन: 6 कदम
Arduino AREF पिन: 6 कदम

वीडियो: Arduino AREF पिन: 6 कदम

वीडियो: Arduino AREF पिन: 6 कदम
वीडियो: C02 AREF, IOREF, ICSP pins क्या है? || Arduino tutorial in hindi || o level M4 IOT practical 2024, जुलाई
Anonim
Arduino AREF पिन
Arduino AREF पिन

इस ट्यूटोरियल में हम देखेंगे कि आप एआरईएफ पिन के साथ संयोजन में अपने Arduino या संगत बोर्ड पर एनालॉग इनपुट पिन का उपयोग करके अधिक सटीकता के साथ छोटे वोल्टेज को कैसे माप सकते हैं। हालाँकि पहले हम आपको गति देने के लिए कुछ संशोधन करेंगे। एआरईएफ के साथ पहली बार काम करने से पहले कृपया इस पोस्ट को पूरी तरह से पढ़ें।

चरण 1: संशोधन

संशोधन!
संशोधन!

आपको याद होगा कि आप सेंसर से विद्युत धारा के वोल्टेज को मापने के लिए Arduino एनालॉग रीड () फ़ंक्शन का उपयोग कर सकते हैं और इसी तरह किसी एक एनालॉग इनपुट पिन का उपयोग कर सकते हैं। एनालॉगरेड () से लौटाया गया मान शून्य से 1023 के बीच होगा, जिसमें शून्य शून्य वोल्ट का प्रतिनिधित्व करेगा और 1023 उपयोग में आर्डिनो बोर्ड के ऑपरेटिंग वोल्टेज का प्रतिनिधित्व करेगा।

और जब हम ऑपरेटिंग वोल्टेज कहते हैं - यह बिजली आपूर्ति सर्किट्री के बाद Arduino के लिए उपलब्ध वोल्टेज है। उदाहरण के लिए, यदि आपके पास एक विशिष्ट Arduino Uno बोर्ड है और इसे USB सॉकेट से चलाते हैं - निश्चित रूप से, आपके कंप्यूटर या हब पर USB सॉकेट से बोर्ड के लिए 5V उपलब्ध है - लेकिन वोल्टेज थोड़ा कम हो जाता है क्योंकि आसपास की वर्तमान हवाएं चलती हैं माइक्रोकंट्रोलर के लिए सर्किट - या यूएसबी स्रोत अभी खरोंच तक नहीं है।

यह आसानी से एक Arduino Uno को USB से कनेक्ट करके और 5V और GND पिन में वोल्टेज मापने के लिए एक मल्टीमीटर सेट लगाकर प्रदर्शित किया जा सकता है। कुछ बोर्ड कम से कम 4.8 V, कुछ अधिक लेकिन फिर भी 5V से नीचे लौटेंगे। इसलिए यदि आप सटीकता के लिए बंदूक चला रहे हैं, तो अपने बोर्ड को डीसी सॉकेट या विन पिन - जैसे 9वी डीसी के माध्यम से बाहरी बिजली की आपूर्ति से बिजली दें। फिर उसके बाद पावर रेगुलेटर सर्किट से गुजरता है, आपके पास एक अच्छा 5V होगा, उदाहरण के लिए छवि।

यह महत्वपूर्ण है क्योंकि किसी भी एनालॉग रीड () मानों की सटीकता वास्तविक 5 वी नहीं होने से प्रभावित होगी। यदि आपके पास कोई विकल्प नहीं है, तो आप वोल्टेज में गिरावट की भरपाई के लिए अपने स्केच में कुछ गणित का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपका वोल्टेज 4.8V है - 0~1023 की एनालॉग रीड () रेंज 0~4.8V से संबंधित होगी न कि 0~5V से। यह तुच्छ लग सकता है, हालाँकि यदि आप एक ऐसे सेंसर का उपयोग कर रहे हैं जो वोल्टेज के रूप में मान लौटाता है (जैसे TMP36 तापमान सेंसर) - परिकलित मान गलत होगा। तो सटीकता के हित में, बाहरी बिजली की आपूर्ति का उपयोग करें।

चरण 2: AnalogRead () 0 और 1023 के बीच एक मान क्यों लौटाता है?

AnalogRead () 0 और 1023 के बीच एक मान क्यों लौटाता है?
AnalogRead () 0 और 1023 के बीच एक मान क्यों लौटाता है?

यह एडीसी के संकल्प के कारण है। संकल्प (इस लेख के लिए) वह डिग्री है जिस तक किसी चीज़ को संख्यात्मक रूप से दर्शाया जा सकता है। रिज़ॉल्यूशन जितना अधिक होगा, उतनी ही अधिक सटीकता जिसके साथ किसी चीज़ का प्रतिनिधित्व किया जा सकता है। हम संकल्प को संकल्प के बिट्स की संख्या के संदर्भ में मापते हैं।

उदाहरण के लिए, 1-बिट रिज़ॉल्यूशन केवल दो (एक की शक्ति के लिए दो) मानों की अनुमति देगा - शून्य और एक। एक 2-बिट रिज़ॉल्यूशन चार (दो की शक्ति के लिए दो) मानों की अनुमति देगा - शून्य, एक, दो और तीन। यदि हमने दो-बिट रिज़ॉल्यूशन के साथ पांच वोल्ट की सीमा को मापने की कोशिश की, और मापा वोल्टेज चार वोल्ट था, तो हमारा एडीसी 3 का संख्यात्मक मान लौटाएगा - क्योंकि चार वोल्ट 3.75 और 5V के बीच आते हैं। छवि के साथ इसकी कल्पना करना आसान है।

तो हमारे उदाहरण के साथ एडीसी 2-बिट रिज़ॉल्यूशन के साथ, यह केवल चार संभावित परिणामी मूल्यों के साथ वोल्टेज का प्रतिनिधित्व कर सकता है। यदि इनपुट वोल्टेज 0 और 1.25 के बीच आता है, तो ADC संख्यात्मक 0 देता है; यदि वोल्टेज १.२५ और २.५ के बीच गिरता है, तो एडीसी १ का संख्यात्मक मान लौटाता है। और इसी तरह। हमारे Arduino की ADC रेंज 0 ~ 1023 के साथ - हमारे पास 1024 संभावित मान हैं - या 10 की शक्ति के लिए 2। इसलिए हमारे Arduinos में 10-बिट रिज़ॉल्यूशन वाला ADC है।

चरण 3: तो अरेफ क्या है?

एक लंबी कहानी को छोटा करने के लिए, जब आपका Arduino एक एनालॉग रीडिंग लेता है, तो यह एनालॉग पिन पर मापे गए वोल्टेज की तुलना करता है जिसे संदर्भ वोल्टेज के रूप में जाना जाता है। सामान्य एनालॉग में उपयोग पढ़ें, संदर्भ वोल्टेज बोर्ड का ऑपरेटिंग वोल्टेज है।

अधिक लोकप्रिय Arduino बोर्डों जैसे Uno, Mega, Duemilanove और Leonardo/Yún बोर्डों के लिए, 5V का ऑपरेटिंग वोल्टेज। यदि आपके पास Arduino ड्यू बोर्ड है, तो ऑपरेटिंग वोल्टेज 3.3V है। यदि आपके पास कुछ और है - Arduino उत्पाद पृष्ठ देखें या अपने बोर्ड आपूर्तिकर्ता से पूछें।

इसलिए यदि आपके पास 5V का संदर्भ वोल्टेज है, तो एनालॉगरेड () द्वारा लौटाई गई प्रत्येक इकाई का मान 0.00488 V है। (इसकी गणना 1024 को 5V में विभाजित करके की जाती है)। क्या होगा यदि हम 0 और 2, या 0 और 4.6 के बीच वोल्टेज मापना चाहते हैं? ADC को कैसे पता चलेगा कि हमारी वोल्टेज रेंज का 100% क्या है?

और इसमें AREF पिन का कारण निहित है। एआरईएफ का मतलब एनालॉग रेफरेंस है। यह हमें बाहरी बिजली आपूर्ति से Arduino को एक संदर्भ वोल्टेज खिलाने की अनुमति देता है। उदाहरण के लिए, यदि हम 3.3V की अधिकतम सीमा के साथ वोल्टेज को मापना चाहते हैं, तो हम AREF पिन में एक अच्छी चिकनी 3.3V फ़ीड करेंगे - शायद वोल्टेज नियामक IC से।

तब एडीसी का प्रत्येक चरण लगभग ३.२२ मिलीवोल्ट (१०२४ को ३.३ में विभाजित करें) का प्रतिनिधित्व करेगा। ध्यान दें कि आपके पास सबसे कम संदर्भ वोल्टेज 1.1V हो सकता है। एआरईएफ के दो रूप हैं - आंतरिक और बाहरी, तो आइए उन्हें देखें।

चरण 4: बाहरी क्षेत्र

एक बाहरी एआरईएफ वह जगह है जहां आप Arduino बोर्ड को बाहरी संदर्भ वोल्टेज की आपूर्ति करते हैं। यह एक विनियमित बिजली आपूर्ति से आ सकता है, या यदि आपको 3.3V की आवश्यकता है तो आप इसे Arduino के 3.3V पिन से प्राप्त कर सकते हैं। यदि आप बाहरी बिजली की आपूर्ति का उपयोग कर रहे हैं, तो GND को Arduino के GND पिन से जोड़ना सुनिश्चित करें। या यदि आप अर्दुनो के 3.3V स्रोत का उपयोग कर रहे हैं - बस 3.3V पिन से AREF पिन तक एक जम्पर चलाएं।

बाहरी एआरईएफ को सक्रिय करने के लिए, शून्य सेटअप () में निम्नलिखित का उपयोग करें:

एनालॉग संदर्भ (बाहरी); // संदर्भ वोल्टेज के लिए AREF का उपयोग करें

यह संदर्भ वोल्टेज सेट करता है जो आपने AREF पिन से जुड़ा है - जिसमें निश्चित रूप से 1.1V और बोर्ड के ऑपरेशन वोल्टेज के बीच वोल्टेज होगा। बहुत महत्वपूर्ण नोट - बाहरी वोल्टेज संदर्भ का उपयोग करते समय, आपको एनालॉग संदर्भ को EXTERNAL पर सेट करना होगा एनालॉग रीड() का उपयोग करने से पहले। यह आपको सक्रिय आंतरिक संदर्भ वोल्टेज और एआरईएफ पिन को छोटा करने से रोकेगा, जो बोर्ड पर माइक्रोकंट्रोलर को नुकसान पहुंचा सकता है। यदि आपके आवेदन के लिए आवश्यक है, तो आप एआरईएफ के लिए बोर्ड के ऑपरेटिंग वोल्टेज पर वापस लौट सकते हैं (अर्थात - सामान्य पर वापस) निम्नलिखित के साथ

एनालॉग रेफरेंस (डिफ़ॉल्ट);

अब काम पर बाहरी एआरईएफ प्रदर्शित करने के लिए। 3.3V AREF का उपयोग करते हुए, निम्न स्केच A0 से वोल्टेज को मापता है और कुल AREF और परिकलित वोल्टेज का प्रतिशत प्रदर्शित करता है:

#शामिल "LiquidCrystal.h"

लिक्विड क्रिस्टल एलसीडी (8, 9, 4, 5, 6, 7);

इंट एनालॉगिनपुट = 0; // हमारा एनालॉग पिन

इंट एनालॉगमाउंट = 0; // स्टोर आने वाले मूल्य फ्लोट प्रतिशत = 0; // हमारे प्रतिशत मूल्य फ्लोट वोल्टेज = 0 को स्टोर करने के लिए उपयोग किया जाता है; // वोल्टेज मान को स्टोर करने के लिए उपयोग किया जाता है

व्यर्थ व्यवस्था()

{एलसीडी.बेगिन (16, 2); एनालॉग संदर्भ (बाहरी); // संदर्भ वोल्टेज के लिए AREF का उपयोग करें}

शून्य लूप ()

{एलसीडी.क्लियर (); एनालॉगमाउंट = एनालॉग रीड (एनालॉगिनपुट); प्रतिशत = (समान राशि/1024.00) * 100; वोल्टेज = अनुरूप राशि * 3.222; // मिलीवोल्ट में LCD.setCursor(0, 0); एलसीडी.प्रिंट ("एआरईएफ का%:"); एलसीडी.प्रिंट (प्रतिशत, 2); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("ए0 (एमवी):"); LCD.println (वोल्टेज, 2); देरी (250); }

ऊपर दिए गए स्केच के परिणाम वीडियो में दिखाए गए हैं।

चरण 5: आंतरिक क्षेत्र

हमारे Arduino बोर्डों पर माइक्रोकंट्रोलर 1.1V का आंतरिक संदर्भ वोल्टेज भी उत्पन्न कर सकते हैं और हम इसका उपयोग AREF कार्य के लिए कर सकते हैं। बस लाइन का प्रयोग करें:

एनालॉग रेफरेंस (आंतरिक);

Arduino मेगा बोर्ड के लिए, उपयोग करें:

एनालॉग रेफरेंस (आंतरिक 1 वी 1);

शून्य सेटअप () में और आप बंद हैं। यदि आपके पास एक Arduino मेगा है तो 2.56V संदर्भ वोल्टेज भी उपलब्ध है जो इसके साथ सक्रिय है:

एनालॉग रेफरेंस (INTERNAL2V56);

अंत में - अपने AREF पिन से परिणामों को तय करने से पहले, हमेशा एक ज्ञात अच्छे मल्टीमीटर के खिलाफ रीडिंग को कैलिब्रेट करें।

निष्कर्ष

एआरईएफ फ़ंक्शन आपको एनालॉग संकेतों को मापने के साथ अधिक लचीलापन देता है।

यह पोस्ट आपके लिए pmdway.com द्वारा लाया गया है - निर्माताओं और इलेक्ट्रॉनिक्स के प्रति उत्साही लोगों के लिए, दुनिया भर में मुफ्त डिलीवरी के साथ।

सिफारिश की: