एनालॉग एनालॉग टू डिजिटल (एनालॉग रीड सीरियल) - अरुडिनो मूल बातें

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस Arduino मूल बातें में हम कोड कार्यान्वयन प्रक्रिया को समझने की कोशिश करते हैं जिसमें एक बाहरी एनालॉग सिग्नल Arduino एनालॉग इनपुट को खिलाया जाता है और अनुवाद किया जाता है या एक समानुपातिक डिजिटल रीडआउट में परिवर्तित होता है। यहां हम एनालॉग सिग्नल स्रोत के रूप में पॉट के रूप में एक चर प्रतिरोध को नियोजित करते हैं।

एनालॉग पढ़ें सीरियल

इस उदाहरण में हम एक बाहरी डिवाइस से एक पोटेंशियोमीटर के एनालॉग इनपुट को पढ़ने की विधि सीखते हैं, जो एक n इलेक्ट्रो-मैकेनिकल डिवाइस है जिसे मैन्युअल ऑपरेशन के माध्यम से एक सर्किट में एक अलग प्रतिरोध को लागू करने के लिए डिज़ाइन किया गया है।



एक Arduino एक शक्तिशाली नापने से निकलने वाले वोल्टेज की भयावहता को मापने के लिए इस्तेमाल किया जा सकता है ताकि इसके अलग-अलग प्रतिरोध को पढ़ने और पहचान सके। यह Arduino एनालॉग इनपुट पोर्ट में एनालॉग वैल्यू के रूप में वोल्टेज को फीड करके किया जा सकता है।

यहां हम देखेंगे कि कैसे Arduino और लिंक किए गए कंप्यूटर पर धारावाहिक संचार स्थापित करने के बाद उपरोक्त को लागू किया जाता है।



हार्डवेयर आवश्यक है

Arduino बोर्ड

10-किलोग्राम पोटेंशियोमीटर

सर्किट ऑपरेशन

जैसा कि ऊपर चित्र में दर्शाया गया है, बर्तन से आपके अरडिनो के बंदरगाहों तक आने वाले तीन तारों को हुक करें।

बर्तन के बाहरी हिस्सों में से एक से तार को जमीन या बोर्ड की नकारात्मक रेखा के साथ सौंपा गया है।

अन्य मुक्त चरम बाहरी अंत लीड बोर्ड के + 5 वी के साथ जुड़ा हुआ है।

जो बचा है, वह बर्तन का केंद्र नेतृत्व है, जो Arduino बोर्ड के एनालॉग इनपुट के लिए समाप्त हो जाता है।

जब पॉट शाफ्ट को घुमाया जाता है, तो केंद्र की सीसा और बाहरी टर्मिनल शिफ्ट में प्रतिरोध कम से कम होता है और इसके विपरीत यह निर्भर करता है कि स्लाइडर भुजा किस ओर है।

उदाहरण के लिए जब स्लाइडर हाथ + 5V लीड की ओर घुमाया जाता है, तो केंद्र लीड 5V के करीब हो जाता है और 5V असाइन किए गए लीड को छूने के साथ पूरे मान को प्राप्त करता है। इसी तरह जब स्लाइडर शाफ्ट को ग्राउंड पॉट लीड की ओर ले जाया जाता है, तो केंद्र लीड शून्य क्षमता प्राप्त करता है।

पॉट के केंद्र लीड पर उपर्युक्त रैखिक रूप से बदलती आपूर्ति वोल्टेज को arduino analogue input द्वारा पॉट के संगत भिन्न प्रतिरोध में व्याख्या करने के लिए पढ़ा जाता है।

Arduino एक आंतरिक एनालॉग-टू-डिजिटल कनवर्टर सर्किट्री को संलग्न करता है जो उपरोक्त पॉट आंदोलन की प्रभावी ढंग से व्याख्या करता है और इसे 0 और 1023 के बीच संख्या में परिवर्तित करता है।

पॉट शाफ्ट पर एक विशेष स्थिति का परिणाम 0 से 1023 के बीच के अनुपात में होता है जिसका अनुवाद अरुडिनो द्वारा किया जाता है, और 5 वी और शून्य वोल्ट के अंतिम मूल्यों के लिए, व्याख्याएं स्पष्ट रूप से 0 और 1023 हैं।

संदर्भित प्रोग्राम में सेटअप फ़ंक्शन को केवल धारावाहिक संचार आरंभ करने के लिए ट्रिगर करने की आवश्यकता होती है, यह दर आपके Arduino बोर्ड और कंप्यूटर पर प्रति सेकंड 9600 बिट डेटा होती है।

अपेक्षित कमांड फॉर्म में है:

सीरीयल.बेगिन (9600)

बाद में, आपके कोड के मुख्य लूप में, हम प्रतिरोध मान को ठीक करने के लिए एक चर लागू करते हैं (जो कि 0 और 1023 के बीच चर्चा की जाएगी, बस एक इंट डेटा प्रकार के लिए उपयुक्त है) बर्तन से प्राप्त होता है:

int SensValue = analogRead (A0)

समाप्त करने के लिए, इस जानकारी को अपने सीरियल विंडो में दशमलव (DEC) मान के रूप में प्रिंट करें। आप इसे कोड की अंतिम पंक्ति में लागू करने के लिए Serial.println () कमांड का उपयोग कर सकते हैं:

Serial.println (SensValue, DEC)

इसके बाद, जब भी Arduino डेवलपमेंट डोमेन में सीरियल मॉनिटर शुरू किया जाता है (यह प्रोग्राम के हेडर में 'अपलोड' बटन के दाहिने हाथ की तरफ स्थित बटन पर क्लिक करके किया जाता है)।

पॉट शाफ्ट की बदलती घूर्णी स्थिति के अनुसार, हम 0-1023 से चलने वाले अंकों की एक सुसंगत श्रृंखला देखेंगे।

यदि हम कुछ पल में पॉट शाफ्ट के रोटेशन को रोकते हैं, तो संबंधित तात्कालिक संख्या Arduino की स्क्रीन पर प्रदर्शित होगी, यह फिर से अनुपात में बदल जाएगा क्योंकि हम पॉट शाफ्ट की स्थिति को बदलते रहेंगे।

कोड

/ *
एनालॉगरेडियर
पिन 0 पर एक एनालॉग इनपुट पढ़ता है, परिणाम को सीरियल मॉनिटर पर प्रिंट करता है।
A0 को पिन करने के लिए एक पोटेंशियोमीटर के केंद्र पिन को संलग्न करें, और बाहरी पिन + 5 वी और जमीन पर।

यह उदाहरण कोड सार्वजनिक डोमेन में है।
* /

जब आप रीसेट दबाते हैं तो एक बार सेटअप दिनचर्या चलती है:
व्यर्थ व्यवस्था() {
// धारावाहिक संचार को 9600 बिट प्रति सेकंड पर आरंभ करें:
सीरीयल.बेगिन (9600)
}

// लूप की दिनचर्या हमेशा के लिए बार-बार चलती है:
शून्य लूप () {
// एनालॉग पिन पर इनपुट पढ़ें 0:
int SensValue = analogRead (A0)
// आपके द्वारा पढ़ा गया मान प्रिंट करें:
Serial.println (SensValue)
देरी (1) // स्थिरता के लिए बीच में देरी
}




पिछला: एक स्विच की निगरानी राज्य (डिजिटल पढ़ें सीरियल) - Arduino मूल बातें अगला: 1.25V से 120V मेन्स एडजस्टेबल वोल्टेज रेगुलेटर सर्किट