ShIoTiny और दुनिया: सबसे छोटे के लिए अनुरूप सेंसर या ADCs

छवि


मुख्य बिंदु या यह लेख किस बारे में है


ShIoTiny पर लेखों की एक श्रृंखला की निरंतरता - ESP8266 चिप पर आधारित एक नेत्रहीन प्रोग्राम कंट्रोलर। इस नियंत्रक की एक प्रमुख विशेषता एक ब्राउज़र में एक कार्यक्रम खींचकर इसे प्रोग्राम करने की क्षमता है।


यह आलेख एनालॉग-टू-डिजिटल रूपांतरण और शिओटिनी एडीसी नियंत्रक के व्यावहारिक अनुप्रयोग के एक संक्षिप्त सिद्धांत का वर्णन करता है।


श्रृंखला में पिछले लेख।


ShIoTiny: छोटे स्वचालन, चीजों का इंटरनेट, या "छुट्टियों के छह महीने पहले"


ShIoTiny: नोड्स, लिंक और इवेंट या ड्राइंग प्रोग्राम की विशेषताएं


ShoTiny: गीला कमरा वेंटिलेशन (उदाहरण परियोजना)


ShIoTiny और आसपास की दुनिया: सेंसर को बाइनरी इनपुट्स, कॉन्टैक्ट बाउंस और अन्य मुद्दों से जोड़ना


परियोजना स्थल


बाइनरी फर्मवेयर, नियंत्रक सर्किट और प्रलेखन यहां


परिचय या गंभीर सिद्धांत के बजाय


पिछले लेख में, हमने मुख्य प्रकार के सेंसरों के कनेक्शन की जांच बाइनरी आउटपुट के साथ शियोनी कंट्रोलर के बाइनरी इनपुट से की थी


लेकिन, अधिकांश लोगों के साथ-साथ स्कूली बच्चों और छात्रों को पता है, आसपास की दुनिया के बारे में जानकारी का थोक विभिन्न भौतिक प्रकृति का एनालॉग मात्रा है: प्रकाश और ध्वनि की शक्ति, गति, वायु दबाव, द्रव स्तर, और इसी तरह।


लगभग सभी आधुनिक माइक्रोप्रोसेसर और माइक्रोकंट्रोलर द्विआधारी प्रतिनिधित्व में केवल असतत मूल्यों को संसाधित करने में सक्षम हैं।


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


एनालॉग और असतत मात्रा (आप प्रोफेसरों, शिक्षाविदों और गीक्स के लिए नहीं पढ़ सकते हैं)


सभी ने स्कूल में गणित की पढ़ाई की। इसलिए, हम इसे चालू करते हैं और एनालॉग और असतत मात्राओं और संख्याओं के बीच समानताएं खींचते हैं।


गणित की दृष्टि से, एक एनालॉग मात्रा एक वास्तविक संख्या है, जो किसी संख्या रेखा के दिए गए खंड पर किसी भी बिंदु पर परिभाषित होती है।


गणित के दृष्टिकोण से असतत मान एक पूर्णांक है । और यह केवल एक संख्या रेखा के दिए गए खंड के कुछ बिंदुओं पर परिभाषित किया गया है।


योजनाबद्ध रूप से नीचे दिया गया आंकड़ा एक रेखा पर एनालॉग और असतत मात्रा-संख्याओं का स्थान दिखाता है।


छवि


उदाहरण के लिए, संख्या रेखा के एक सेगमेंट पर -4 से 3 तक विचार करें । जैसा कि आप देख सकते हैं, लाल डॉट्स द्वारा इंगित असतत मात्रा - इस पर पूर्णांक केवल 8 टुकड़े हैं। आकृति में हरी रेखा द्वारा दिखाए गए एनालॉग मान अनंत हैं।


उदाहरण के लिए, हमारे पास एक निश्चित मात्रा X है , जिसमें 0 से 127 तक के मान हैं। यदि हम इस मात्रा को एनालॉग के रूप में दर्शाते हैं , तो सैद्धांतिक रूप से हम किसी भी सटीकता के साथ इसका प्रतिनिधित्व कर सकते हैं - उदाहरण के लिए, 12.123455454980 या 126.00000000007 या सामान्य रूप से एक लाख दशमलव स्थानों के साथ।


लेकिन जैसे ही माइक्रोकंट्रोलर व्यवसाय में प्रवेश करता है और एक्स का मूल्य एक असतत प्रतिनिधित्व प्राप्त करता है, तो सैद्धांतिक रूप से भी किसी भी "अनंत सटीकता" की बात नहीं हो सकती है। सटीकता द्विआधारी अंकों की संख्या से सीमित है, जिसे हम मात्रा X के प्रतिनिधित्व के लिए निर्दिष्ट करते हैं।


उदाहरण के लिए, हम 7 बिट्स लेते हैं। इस मामले में, हम एक की सटीकता के साथ एक्स के मूल्य का प्रतिनिधित्व कर सकते हैं। यही है, एक्स = 1 या एक्स = 112 को निर्दिष्ट करना संभव होगा। लेकिन X = 112.5 को पहले से ही इंगित नहीं किया जा सकता है - पर्याप्त गहराई नहीं है। यदि हम X के 7 , लेकिन 10 अंकों के समान मूल्य के प्रतिनिधित्व के लिए लेते हैं, तो प्रतिनिधित्व की सटीकता एक नहीं, बल्कि 0.125 होगी । और इस रूप में, आप एक्स = 95.125 या एक्स = 112.5 की कल्पना कर सकते हैं। लेकिन अधिक सटीक रूप से, उदाहरण के लिए, X = 112.13 के रूप में - यह मान पहले से ही प्रदर्शित नहीं किया जा सकता है।


यदि आप इस तथ्य से भ्रमित हैं कि मैं भिन्नात्मक मूल्यों को लिखता हूं और उसी समय मैं उन्हें पूर्णांक के रूप में बोलता हूं, तो याद रखें कि "असतत अंक" इकाइयों में नहीं, बल्कि 0.5 या 0.125 इकाइयों में एक संख्या रेखा पर रखा जा सकता है। लेकिन जैसा कि वे थे, अंतिम मूल्य किसी भी खंड पर रहेगा। और एक असतत मात्रा के सभी गुण संरक्षित हैं।


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


उपरोक्त सभी के परिणामस्वरूप, हमें एक तुच्छ निष्कर्ष मिलता है। वास्तविक दुनिया की अधिकांश औसत दर्जे की मात्राएँ हैं। माइक्रोकंट्रोलर केवल मात्राओं के असतत संख्यात्मक निरूपण के साथ काम करते हैं। इसलिए, माइक्रोकंट्रोलर का उपयोग करके किसी भी एनालॉग मूल्य को संसाधित करने से पहले, इस मूल्य को असतत के रूप में दर्शाया जाना चाहिए। हाँ, और द्विआधारी रूप में।


एनालॉग से डिजिटल में इस तरह के रूपांतरण को एनालॉग-टू-डिजिटल रूपांतरण कहा जाता है


डिजिटल कनवर्टर के अनुरूप


एक एनालॉग सिग्नल को डिजिटल में बदलने के लिए एक उपकरण को एडीसी ( एनालॉग-टू-डिजिटल कनवर्टर ) कहा जाता है।


आमतौर पर, इस तरह के डिवाइस में एक या अधिक एनालॉग इनपुट होते हैं, जिनसे एक एनालॉग सिग्नल और एक दी गई बिट गहराई के साथ एक डिजिटल आउटपुट (आमतौर पर 8 से 16 बिट्स) की आपूर्ति की जाती है।


हमारे ESP8266 सहित आधुनिक माइक्रोकंट्रोलर, अंतर्निहित ADC इकाइयाँ हैं।


विशेष रूप से ADC और विशेष रूप से ESP8266 ADC में क्या विशेषताएँ हैं?


पहली विशेषता यह है कि एडीसी किस प्रकार के इनपुट एनालॉग मूल्य को आउटपुट डिजिटल कोड में परिवर्तित करता है। सबसे अधिक बार, यह मान ADC के एनालॉग इनपुट पर वोल्टेज है। तो यह हमारे मामले में होगा। लेकिन प्रकृति में, वर्तमान इनपुट के साथ एडीसी हैं।


एडीसी की दूसरी विशेषता, जो व्यवहार में आवश्यक है, एडीसी के इनपुट मूल्य के मूल्यों की सीमा है। हमारे मामले में, यह ADC के इनपुट पर न्यूनतम और अधिकतम वोल्टेज मान है। ये मान क्रमशः 0V और 1V होंगे। 1 वी की इनपुट रेंज छोटी लगती है, लेकिन बड़े वोल्टेज को हमेशा विभाजित और कम किया जा सकता है, और छोटे वोल्टेज को बढ़ाया जा सकता है।


एडीसी की तीसरी और शायद सबसे महत्वपूर्ण विशेषता इसकी क्षमता है। यह मान परिवर्तन की सटीकता या (हमारे सादृश्य द्वारा) निर्धारित करता है - कितनी बार "असतत" अंक "वास्तविक" संख्या रेखा पर रखे जाते हैं। हमारे मामले में, एडीसी का संकल्प 10 है । इसका क्या मतलब है? और इसका मतलब है कि आउटपुट डिजिटल कोड 10 बाइनरी अंकों द्वारा दर्शाया गया है और इसमें 0 से 1023 तक 1024 मान हैं।
कड़ाई से बोलते हुए, यह याद रखने योग्य है कि रूपांतरण की सटीकता न केवल थोड़ी गहराई पर निर्भर करती है, बल्कि कई अन्य मापदंडों पर भी निर्भर करती है, उदाहरण के लिए, एडीसी की रैखिकता। लेकिन इस बारे में बहुत पहले से ही बहुत चालाक चाचाओं द्वारा बहुत ही चतुर किताबों में लिखा गया है, इसलिए इस लेख में मैं बिना विवरण के पाठक को छोड़ दूंगा।


इसके अलावा, ईएसपी 8266 एडीसी अतिप्रवाह का पता लगा सकता है, अर्थात् , एक स्थिति जहां 1V से अधिक वोल्टेज इनपुट पर लागू होता है।


यदि आप ADCs पर एक स्मार्ट संदर्भ पुस्तक लेते हैं और वहां देखते हैं, तो दर्जनों अन्य विशेषताएं होंगी। वे सभी आवश्यक और महत्वपूर्ण हैं, लेकिन हम इतनी दूर नहीं जाएंगे। उदाहरण के लिए , हम ADC के समय के मापदंडों को नहीं छूएंगे , क्योंकि हमारा मानना ​​है कि हमारे मामले में मापा मूल्यों में धीरे-धीरे परिवर्तन होता है और ADC उन्हें "तुरंत" डिजिटल प्रतिनिधित्व में परिवर्तित करता है।


प्रारंभिक परिणाम को संक्षेप में प्रस्तुत करने के लिए।
ShIoTiny कंट्रोलर का ADC ESP8266 में बनाया गया है।


एडीसी ESP8266 के इनपुट पर 0 से 1V तक की वोल्टेज लागू होती है


ESP8266 ADC के आउटपुट में , हमें 0 से 1023 तक की रेंज में इनपुट वोल्टेज के लिए आनुपातिक संख्या मिलती है। वोल्टेज 0V ADC आउटपुट पर कोड 0 से मेल खाती है, वोल्टेज 1V ADC आउटपुट में कोड 1023 से मेल खाती है।


ShIoTiny में ADC से डेटा पढ़ना प्रति सेकंड लगभग 10 गुना की गति से किया जाता है।


एडीसी के हार्डवेयर इनपुट को ओवरवॉल्टेज के खिलाफ संरक्षित किया गया है, इसी तरह से बाइनरी इनपुट्स इनपुट 1,2,3 संरक्षित हैं ( यहां देखें )।


यह ShIoTiny ADC हार्डवेयर के लिए है


अब ADC1 नोड से निपटते हैं , जो ESP8266 हार्डवेयर ADC से डेटा प्रोसेस करता है।


सॉफ्टवेयर की घंटी या सीटी ADC1


एलड्रॉ संपादक में प्रोग्राम आरेख में, एनालॉग-टू-डिजिटल कनवर्टर असेंबली को ADC1 कहा जाता है।



जैसा कि पहले ही उल्लेख किया गया है, ADC1 नोड ESP8266 हार्डवेयर ADC से डेटा प्रति सेकंड लगभग 10 गुना प्राप्त करता है। लेकिन निर्दिष्ट नोड इस पर शांत नहीं होता है, लेकिन इस डेटा को संसाधित करना शुरू कर देता है और यहां तक ​​कि इसे थोड़ा विश्लेषण भी करता है।


सबसे पहले , यह जाँच की जाती है - क्या कोई एडीसी अतिप्रवाह था? वह है - क्या ADC इनपुट 1V से अधिक नहीं है? यदि ऐसी स्थिति का पता चला है, तो ADC1 नोड का आउटपुट NAN ( संख्या नहीं ) पर सेट है।


दूसरे , यदि कोई अतिप्रवाह नहीं था, तो ADC के इनपुट पर ADC 0..1023 का आउटपुट मान वोल्टेज मान में बदल जाता है। uin- 0..1 रेंज में एक फ्लोटिंग पॉइंट नंबर।


तीसरा , यह परिवर्तित मान 0..1 सूत्र के अनुसार पुनर्गणना है X=k cdotuin+bजहाँ uin- एडीसी के इनपुट पर वोल्टेज ( 0 से 1 वी तक ); k रेंज ( ADC रेंज ) है और b ऑफसेट ( ADC ऑफसेट ) है। और अंत में, X का प्राप्त मान ADC1 नोड के आउटपुट पर सेट है।


और अंत में पांचवें में । यदि एक्स का मूल्य एक निर्दिष्ट प्रतिशत ( 1 से 100% तक ) से बदल गया है, तो एडीसी इकाई घटनाओं को उत्पन्न करती है, जिससे इससे जुड़े नोड्स के मूल्यों का रूपांतरण होता है। यह अनिवार्य रूप से एडीसी संवेदनशीलता पैरामीटर ( एडीसी परिवर्तन, रेंज% ) है। आखिरकार, आमतौर पर "हर छींक" पर प्रतिक्रिया करने का कोई कारण नहीं है, अर्थात एडीसी के निचले हिस्सों में होने वाले बदलावों के लिए - वे अक्सर "शोर करते हैं"। इसलिए, संवेदनशीलता पैरामीटर बहुत व्यावहारिक महत्व का है।


वैध प्रश्न उठता है - हम इन सेटिंग्स को कैसे कॉन्फ़िगर करते हैं? आरेख में ADC1 नोड पर अपने माउस से क्लिक करें और वहीं आपको सेटिंग्स विंडो दिखाई देगी।


इसमें आप अपनी जरूरत की हर चीज सेट कर सकते हैं। हमारे मामले के लिए, यह ऐसी खिड़की होगी, जैसा कि आंकड़े में है।


छवि


इस विंडो में, आप ऊपर दिए गए सभी मापदंडों को निर्धारित कर सकते हैं - एडीसी की सीमा, ऑफसेट और संवेदनशीलता।


यदि आपने कुछ भी निर्दिष्ट नहीं किया है, तो सीमा 1 होगी। ऑफसेट शून्य है। और संवेदनशीलता 1% है।


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


जैसा कि आप देख सकते हैं, ADC1 नोड काफी जटिल है। यह सब क्यों किया जाता है? आपके लिए, मेरे प्यारे उपयोगकर्ताओं! बस मजाक कर रहे हैं, ज़ाहिर है, एक दुर्भावनापूर्ण अहंकार के रूप में मैंने पिछले अनुभव को ध्यान में रखा और अपने जीवन को आसान बनाने की कोशिश की।


हम, सरल इंजीनियर के रूप में, मानों को "तोते" में प्रस्तुत नहीं करना चाहते हैं, लेकिन सामान्य और समझने योग्य मूल्यों में - वोल्ट, एम्पीयर, किलोग्राम या मीटर।


कई सेंसर "तोते" में मूल्य देते हैं, उम्मीद करते हैं कि एक स्मार्ट माइक्रोकंट्रोलर उन्हें वांछित मानों में पुनर्गणना देगा।


इस प्रयोजन के लिए, दिए गए एक के कार्य द्वारा मापा एडीसी मान का रूपांतरण पेश किया गया था।


लेकिन, हमेशा की तरह, दस बार सुनने की तुलना में एक बार देखना बेहतर है। दस बार देखने की तुलना में एक बार प्रयास करना बेहतर है ... लेकिन यह बात नहीं है।
इसलिए, मैं कुछ जटिल उदाहरण नहीं दूंगा: एक बिजली आपूर्ति नियंत्रण प्रणाली और 4-20mA आउटपुट के साथ एक सेंसर के आधार पर तापमान मापने की प्रणाली।


निगरानी करता है


वोल्टेज को मापना एक सामान्य कार्य है। उदाहरण के लिए, हम साधन ~ 220V के वोल्टेज को मापना चाहते हैं। यदि हमारे पास खराब बिजली की आपूर्ति है, तो कार्य बहुत वास्तविक है। हमें बहुत सटीक बदलाव की जरूरत नहीं है। यह पर्याप्त है कि जब वोल्टेज मानदंड से 15% ऊपर है, तो रिले 1 को शिऑटिनी पर ट्रिगर किया जाता है , और जब वोल्टेज मानक से 15% कम हो जाता है, तो रिले 2 को ट्रिगर किया जाता है


बेशक, हम ShIoTIny कंट्रोलर के ADC1 इनपुट को सॉकेट में प्लग नहीं कर सकते। क्या करें? सबसे पहले, वोल्टेज को स्वीकार्य स्तर तक कम किया जाना चाहिए - 0..1V । और, दूसरी बात, इसे ठीक किया जाना चाहिए: हमारा एडीसी वैकल्पिक वोल्टेज को माप नहीं सकता है।


नेटवर्क में वोल्टेज आदर्श के नीचे और आदर्श से ऊपर दोनों हो सकते हैं। सादगी के लिए, हम मानते हैं कि 220V साधन वोल्टेज एडीसी के इनपुट पर 0.5V वोल्टेज के अनुरूप होंगे।


अगला, हम किसी भी चरण-नीचे ट्रांसफार्मर की तलाश करते हैं जो इनपुट वोल्टेज के ~ 220V पर हमें देगा, आउटपुट वोल्टेज का ~ 3V और नीचे के चित्र में इस तरह के सर्किट को इकट्ठा करेगा।



यहां एक आश्चर्य की बात है कि इलेक्ट्रॉनिक्स में अज्ञानी का इंतजार कर सकते हैं रेक्टिफायर के आउटपुट में, 3 वी डीसी वोल्टेज अचानक प्रकट नहीं होता है, लेकिन कुछ 4 वी प्लस! वास्तव में, सब कुछ बस समझाया गया है। जब हम एक प्रत्यावर्ती वोल्टेज को मापते हैं, तो वोल्टमीटर हमें वास्तविक वोल्टेज मान दिखाता है। और जब हम इस वोल्टेज को ठीक करते हैं, तो रेक्टिफायर के आउटपुट में हमें वोल्टेज का चरम मान मिलता है, जो साइनसॉइडल सिग्नल के लिए लगभग 1.41 , और बिल्कुल  sqrt2वर्तमान एक से अधिक बार। इसलिए रेक्टिफायर के आउटपुट में "समझ से बाहर" 4.23V


और अंत में, हमें वोल्टेज विभक्त की गणना करने की आवश्यकता है, अर्थात, प्रतिरोध आर 1 और आर 2 । हमें इसके इनपुट 4.23V पर वोल्टेज के साथ विभक्त 0.5 वी के आउटपुट पर प्राप्त करने की आवश्यकता है। तो 4.23V के सुधारित वोल्टेज को 8.46 बार विभाजित किया जाना चाहिए। ऐसा करने के लिए, रोकनेवाला R2 = 100 ओम सेट करें, और रोकनेवाला R1 = 746 ओम । लेकिन यह आदर्श है। वास्तव में, 746 ओम के प्रतिरोध वाले प्रतिरोध मौजूद नहीं हैं। हां, और ट्रांसफार्मर विशेष रूप से सटीक नहीं हैं। इसलिए, यदि कोई भी इस समाधान की कोशिश करने की हिम्मत करता है, तो मैं आपको दृढ़ता से 180 आरएचएम या 220 ओम के प्रतिरोध के साथ आर 1 = 760 ओम को रोकने के लिए , और रोकनेवाला आर 2 ट्रिमर लेने की सलाह देता हूं। फिर आप एक वोल्टमीटर से लैस होकर, आर 2 को समायोजित कर सकते हैं ताकि ~ 220V पर वोल्टेज ट्रांसफार्मर की प्राथमिक घुमावदार पर, डिवाइडर के आउटपुट पर (या, जो कि ADC1 के इनपुट पर समान है ) 0.5V है


हम वोल्टेज को न केवल उस तरह मापते हैं, बल्कि इसे मानक से अधिक या घटाकर कुछ करने के लिए करते हैं। उदाहरण के लिए, बैकअप पावर चालू करें ताकि कुछ डिवाइस जल न जाए और बंद न हो।


इसलिए, हम सबसे सरल प्रोग्राम योजना तैयार करेंगे, जो, जब वोल्टेज मानदंड से 15% ऊपर है, तो रिले रिले 1 के काम करने का कारण बनता है, और जब वोल्टेज मानक से 15% कम हो जाता है, तो रिले रिले 2 काम करता है । इसके अलावा, रिले को ट्रिगर करने के लिए नेटवर्क पर ओवरवॉल्टेज या अंडरवॉल्टेज को कम से कम 1 मिनट तक बनाए रखा जाना चाहिए। यह शॉर्ट वोल्टेज चोटियों के दौरान झूठे अलार्म को रोक देगा जो अक्सर नेटवर्क पर होते हैं। स्कीम प्रोग्राम जो हमारे विचार को लागू करता है, वह आंकड़ा में दिखाया गया है।


छवि


इस सर्किट को काम करने के लिए, एडीसी मापदंडों की सेटिंग्स में 440 के बराबर गुणांक k (श्रेणी) को सेट करना आवश्यक है, जैसा कि आंकड़े में दिखाया गया है।


छवि


440 के गुणांक और ADC 0.5V के इनपुट पर एक वोल्टेज वोल्टेज के साथ , ADC1 नोड का आउटपुट 220 होगा। यह वास्तविक साधन वोल्टेज है!


यह बहुत सुविधाजनक है, क्योंकि यह आपको वोल्टेज में स्थिरांक को तुरंत सेट करने की अनुमति देता है: 220V + 15% 253V है और 220V-15% 187V है । यदि आवश्यक हो, तो वोल्टेज को "तोते" में बदलने और अनुवाद करने के लिए समय बर्बाद किए बिना इन मूल्यों को आसानी से बदला जा सकता है।


4-20mA तापमान सेंसर


4-20mA वर्तमान उत्पादन वाले सेंसर उद्योग में बहुत आम हैं। रोजमर्रा की जिंदगी में आप अक्सर उनसे नहीं मिलेंगे। फिर भी, किसी के पास है और यह कोई उन्हें कारण के अनुकूल बनाना चाहता है।


ADC, ShIoTiny कंट्रोलर के साथ ऐसे सेंसर के उपयोग की अनुमति देता है।


सेंसर उत्पादन वर्तमान और ठीक 4-20mA क्यों है? मैं समझा दूंगा।


वर्तमान आउटपुट लंबी लाइनों पर अच्छी तरह से काम करते हैं। एक किलोमीटर कहो। वे तारों के प्रतिरोध की परवाह नहीं करते: कंडक्टर के प्रतिरोध की परवाह किए बिना, तार की पूरी लंबाई के साथ वर्तमान समान है।


4mA का प्रारंभिक वर्तमान मूल्य, और न केवल वर्तमान की कमी, यह एक वायर ब्रेक का पता लगाना आसान बनाता है। यदि सेंसर पूरा है और तार टूटा नहीं है, तो हमेशा चालू रहता है। कम से कम 4mA । और अगर तार टूट जाता है, तो कोई वर्तमान ( 0mA ) नहीं है।


मान लीजिए कि हमारे पास 4-20mA के वर्तमान आउटपुट के साथ एक तापमान संवेदक है और -40C से + 125C तक मापा तापमान की सीमा है। हम इसे शिओटीन से जोड़ना चाहते हैं। पहली चीज जो हमें करने की ज़रूरत है वह वर्तमान को वोल्टेज में बदल देती है। इस तरह के रूपांतरण के लिए एक आदर्श साधन एक पारंपरिक प्रतिरोधक है।


चूंकि ADC इनपुट पर अधिकतम वोल्टेज 1V है , और लाइन में अधिकतम वर्तमान 20mA है , इसलिए यह गणना करना आसान है कि एक अवरोधक जो 20mA को 1V में परिवर्तित करता है, में 50 ओम का प्रतिरोध होगा। ( पता नहीं ओम का नियम है - घर पर रहो! )।


हम अपने सेंसर को कनेक्ट करेंगे जैसा कि चित्र में दिखाया गया है।


छवि


सेंसर मापा तापमान के लिए आनुपातिक एक वर्तमान जनरेटर है। एडीसी 1 इनपुट के समानांतर 50 ओम के प्रतिरोध के साथ, सेंसर सर्किट में उत्पन्न वर्तमान के आधार पर, एडीसी इनपुट में निम्न वोल्टेज मान होंगे:


  • वर्तमान 4mA से कम , एडीसी इनपुट पर वोल्टेज 0.2V से कम - लाइन ब्रेक;
  • वर्तमान 4mA से 20mA , वोल्टेज 0.2V से 1V करने के लिए - सेंसर काम कर रहा है;
  • वर्तमान 20mA से अधिक है , इनपुट वोल्टेज 1V से अधिक है - सेंसर दोषपूर्ण है। सेंसर में शॉर्ट सर्किट के साथ, 50 ओम अवरोधक जल सकता है यदि यह 2W से कम है।

मान लीजिए कि हम तापमान को मापना चाहते हैं और इसे MQTT द्वारा प्रकाशित करना चाहते हैं। इसके अलावा, हम सेंसर की स्थिति प्रकाशित करेंगे (ओपन सर्किट, शॉर्ट सर्किट या सब कुछ क्रम में है)।


पहली चीज जो हमें करने की ज़रूरत है वह "तोते" से डिग्री तक के मूल्य का पुनर्गणना है। यह जानते हुए कि -40 ° C का तापमान 0.2 m के ADC के इनपुट पर 4 mA और वोल्टेज के करंट से मेल खाता है, और +125 ° C का तापमान 20 mA के करंट से मेल खाता है और 1 V के ADC के इनपुट पर एक वोल्टेज है, हम गुणांक प्राप्त करते हैं: k = 206.25 और b = -81.25 । एडीसी सेटिंग्स विंडो में इन गुणांक दर्ज करें, जैसा कि चित्र में दिखाया गया है।


छवि


कौन खुद को कश्मीर और बी की गणना की शुद्धता को सत्यापित करना चाहता है - अपने आप को समीकरणों की सबसे सरल प्रणाली के लिए तय करें:


 start0.2 cdotk+b=401 cdotk+b=125 end=


खैर, कार्यक्रम योजना बिल्कुल जटिल नहीं होगी और नीचे दिए गए आंकड़े में दिखाया गया है।


छवि


मामले में जब सब कुछ ठीक है और 4-20mA तापमान सेंसर काम कर रहा है , तो नाम / t_sens के तहत MQTT सर्वर पर तापमान प्रकाशित किया जाता है । लक्षण भी नाम / sens_short और / sens_break के तहत प्रकाशित होते हैं। यदि सब ठीक है, तो दुर्घटना के संकेत शून्य हैं।


यदि रेखा टूटती है , तो तापमान -40C से कम होगा। इस स्थिति में, MQTT ब्रोकर पर पैरामीटर / sens_break एक इकाई के रूप में प्रकाशित किया जाएगा।


यदि लाइन में शॉर्ट सर्किट है, तो तापमान + 125C से अधिक होगा। 1 NAN ( - ). /sens_short MQTT .


Relay3 , , , .


«» , , , 200 .


निष्कर्ष


ShIoTiny , . , .


, - «» , - , - .


— . .


: shiotiny@yandex.ru .


संदर्भ


, , .




-


.




: 4-20 –


ESPPOWER ANDROID

Source: https://habr.com/ru/post/hi466443/


All Articles