विषयसूची:

5-तार प्रतिरोधी स्पर्श सेंसर: 10 कदम
5-तार प्रतिरोधी स्पर्श सेंसर: 10 कदम

वीडियो: 5-तार प्रतिरोधी स्पर्श सेंसर: 10 कदम

वीडियो: 5-तार प्रतिरोधी स्पर्श सेंसर: 10 कदम
वीडियो: What is Sensor & Types of Sensor - electrical interview question 2024, नवंबर
Anonim
5-तार प्रतिरोधी स्पर्श सेंसर
5-तार प्रतिरोधी स्पर्श सेंसर

नमस्ते नमस्ते!

मुझे इस साइट पर काम करते हुए काफी समय हो गया है और ऐसा लगता है कि काफी कुछ बदल गया है! मैं अंत में एक और परियोजना के लिए पहिया के पीछे वापस जाने के लिए तैयार हूं, और मुझे लगता है कि चीजों को थोड़ा सा बदलने का समय आ गया है!

मेरे मन में कुछ समय के लिए 271828 की प्लेट और बॉल पर आधारित एक परियोजना थी, लेकिन इसके समाप्त होने से पहले मुझे सेंसर और नियंत्रण सिद्धांत के बारे में जानने के लिए बहुत कुछ मिला है। मैंने सोचा कि जब तक मैं एक या दो चीजें सीख रहा हूं, मैं आप लोगों को अपने साथ ले जा सकता हूं!

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

मैं इस नए प्रोजेक्ट के लिए बहुत उत्साहित हूं, और मैं यह देखने के लिए उत्साहित हूं कि यह कितनी अच्छी तरह काम करता है!

आज हम केवल DP-32 के साथ काम करने वाला एक साधारण 5-वायर टच पैनल प्राप्त करने जा रहे हैं।

आएँ शुरू करें!

चरण 1: आपको क्या चाहिए

आपको किस चीज़ की ज़रूरत पड़ेगी
आपको किस चीज़ की ज़रूरत पड़ेगी

चूंकि यह ट्यूटोरियल एक एकल सेंसर को काम करने के बारे में है, इसलिए आपको माइक्रोकंट्रोलर और टच-पैनल के अलावा और कुछ नहीं चाहिए।

  • एक माइक्रोकंट्रोलर।

    मैं अपने DP32 का उपयोग ब्रेड-बोर्ड के साथ कर रहा हूं क्योंकि यह प्रोटोटाइप को अविश्वसनीय रूप से सरल बनाता है।

  • मिश्रित तार और केबल।

    मैं टच-पैनल के बिल्ट-इन रिबन केबल का उपयोग कर सकता था, लेकिन अगर यह फट जाता है तो पूरा पैनल बेकार है। इसके बजाय, मैं बिल्ट-इन केबल पर तनाव कम करने के लिए 6-तार केबल का उपयोग कर रहा हूं।

  • टाइटैनिक 5-तार प्रतिरोधक टच-पैनल!

    मेरे पास 4-तार प्रतिरोधी टच-पैनल था, लेकिन इसके लिए रिबन केबल टूट गया।

और बस!

चरण 2: 5-तार प्रतिरोधी टच पैनल क्या है?

5-तार प्रतिरोधी टच पैनल क्या है?
5-तार प्रतिरोधी टच पैनल क्या है?
5-तार प्रतिरोधी टच पैनल क्या है?
5-तार प्रतिरोधी टच पैनल क्या है?
5-तार प्रतिरोधी टच पैनल क्या है?
5-तार प्रतिरोधी टच पैनल क्या है?

यदि आपने मेरे 4-वायर टच-पैनल ट्यूटोरियल को पढ़ा है, तो आप एक प्रतिरोधक टच सेंसर के सामान्य विचार से परिचित होंगे, लेकिन 5-वायर पैनल और 4-वायर पैनल थोड़ा अलग तरीके से काम करते हैं।

मुझे यह पैनल पसंद है क्योंकि आप सभी तार के निशान देख सकते हैं, जिससे यह देखना आसान हो जाता है कि क्या करता है। पहली तस्वीर में, मैंने प्रत्येक निशान को अलग तरह से रंगा है। आप शायद देख सकते हैं कि चार तार (गुलाबी, पीले, नारंगी और बैंगनी) प्रत्येक चार कोनों में से एक पर जाते हैं। बीच का तार (लाल) लचीले सेंसर पैनल में जाता है।

दूसरी तस्वीर में, हमने चार में से दो तारों (ऊपर-दाएं और नीचे-दाएं) को एक उच्च वोल्टेज (लाल रंग में दिखाया गया है) पर सेट किया है, जबकि अन्य दो (ऊपर-बाएं और नीचे-बाएं) कम पर सेट हैं वोल्टेज (नीले रंग में दिखाया गया है)। यह पूरे पैनल में वोल्टेज का एक ग्रेडिएंट बनाता है। इस मामले में, ढाल एक्स-अक्ष के साथ जाता है, इसलिए एक उच्च वोल्टेज एक्स-अक्ष के साथ एक उच्च स्थिति का प्रतिनिधित्व करता है।

जब हम अपनी उंगली को पैनल पर स्पर्श करते हैं, तो यह लचीले सेंसर को दबा देता है, जो एक्स-अक्ष ढाल के साथ कहीं से जुड़ता है। हमारे माइक्रोकंट्रोलर पर वोल्टेज सेंसर इस वोल्टेज को समझ सकते हैं, और आपको बता सकते हैं कि एक्स-अक्ष पर आपकी उंगली कहां छू रही है!

तीसरी तस्वीर में, आप देख सकते हैं कि वाई-अक्ष के साथ हमें समझने की अनुमति देने के लिए कॉन्फ़िगरेशन कैसे बदलता है। इस तरह, हम बता सकते हैं कि 2-डी स्पेस में हमारी उंगली कहां छू रही है!

चरण 3: वायरिंग

तारों
तारों
तारों
तारों

जैसा कि आप शायद ऊपर की तस्वीरों में देख सकते हैं, मैंने अपने चारों कोनों को उनके अपने डिजिटल आउटपुट पिन से जोड़ा है। यह मुझे उन्हें व्यक्तिगत रूप से उच्च या निम्न पर सेट करने देगा। मेरा सेंसर पिन एक एनालॉग इनपुट पिन से जुड़ जाता है। 4-तार के विपरीत 5-वायर टच-स्क्रीन के बारे में अच्छी बात यह है कि आपको केवल एक एनालॉग पिन की आवश्यकता होती है, जबकि 4-तार के लिए 2 की आवश्यकता होती है।

आपकी वायरिंग निश्चित रूप से भिन्न हो सकती है, लेकिन मेरी वायरिंग इस प्रकार है:

एनालॉग 0 (पिन 6) सेंसर (मध्य पिन) से जुड़ता है

डिजिटल 3 टॉप-राइट (टॉप-मोस्ट पिन) से जुड़ता है

डिजिटल 2 टॉप-लेफ्ट से कनेक्ट होता है (दूसरा टॉप-मोस्ट पिन)

डिजिटल 1 बॉटम-लेफ्ट से कनेक्ट होता है (दूसरा बॉटम-मोस्ट पिन)

डिजिटल 0 बॉटम-राइट (नीचे-सबसे पिन) से जुड़ता है

यह फिर से ध्यान देने योग्य है कि मैं माइक्रोकंट्रोलर और पैनल के बीच जाने के लिए 6-तार केबल का उपयोग कर रहा हूं। मैंने इस केबल के शीर्ष पिन को असंबद्ध छोड़ दिया है।

चरण 4: सॉफ्टवेयर विकास

सॉफ्टवेयर डेवलपमेंट
सॉफ्टवेयर डेवलपमेंट

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

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

अभी के लिए, मैं एक साधारण विलंब शैली ब्लिंक प्रोग्राम के साथ शुरुआत कर रहा हूं, ठीक उसी तरह जैसा कि आप उदाहरण फ़ोल्डर में पाएंगे। यदि आप मेरे द्वारा लिखे गए लंबे हेडर को पढ़ते हैं, तो आप देखेंगे कि इस प्रक्रिया का प्रत्येक चरण कार्यक्रम को संशोधित कर इसे हमारे अंतिम लक्ष्य के करीब ले जाएगा।

चरण 5: स्टेट मशीन ब्लिंक

स्टेट मशीन ब्लिंक
स्टेट मशीन ब्लिंक

मेरा पहला कदम ब्लिंक फ़ंक्शन को "देरी ()" के आधार पर एक राज्य मशीन में बदलना है।

उन लोगों के लिए जो स्विच-स्टेटमेंट के आदी नहीं हैं, यह इफ-स्टेटमेंट के समान काम करता है। यह (नारंगी बॉक्स में) हमारे "स्टेट" वेरिएबल का परीक्षण करता है (जो 0 से शुरू होता है)। फिर यह हमारी वर्तमान स्थिति के मामले में कूद जाता है। आप देखेंगे कि केस 0 और 2 एलईडी को चालू और बंद करने के लिए जिम्मेदार हैं (क्रमशः), जबकि केस 1 और 3 स्विच के बीच प्रतीक्षा करने के लिए जिम्मेदार हैं।

चरण 6: बटन ब्लिंक

बटन ब्लिंक
बटन ब्लिंक
बटन ब्लिंक
बटन ब्लिंक
बटन ब्लिंक
बटन ब्लिंक

इसके बाद, मैं चाहता था कि बटन का उपयोग प्रकाश को झपकाने के लिए किया जाए। इसे अधिक जटिल बनाने के बजाय, मैंने सभी राज्यों को एक-एक करके नीचे कर दिया (राज्य ० राज्य १ बन जाता है, आदि)। ऐसा करते समय, बाहर निकलने वाले राज्यों के साथ-साथ राज्य को भी बढ़ाने के लिए सावधान रहें (चित्र 3 देखें)।

मैंने दूसरी "प्रतीक्षा" स्थिति को भी हटा दिया। इसका मतलब है कि बटन एक सेकंड के लिए प्रकाश चालू करता है, और आप बटन को बंद करने के तुरंत बाद फिर से दबा सकते हैं।

यह ध्यान देने योग्य है कि यह सिस्टम स्वचालित रूप से हमारे लिए बटन को डिबॉउंस करता है, क्योंकि हमें राज्य 0 पर लौटने से पहले एलईडी के बंद होने का इंतजार करना पड़ता है जहां बटन फिर से चक्र को ट्रिगर कर सकता है।

चरण 7: सीरियल संचार

धारावाहिक संचार
धारावाहिक संचार
धारावाहिक संचार
धारावाहिक संचार

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

चरण 8: निर्देशांक पढ़ना

निर्देशांक पढ़ना
निर्देशांक पढ़ना
निर्देशांक पढ़ना
निर्देशांक पढ़ना
निर्देशांक पढ़ना
निर्देशांक पढ़ना
निर्देशांक पढ़ना
निर्देशांक पढ़ना

यह अच्छा है कि अंतिम चरण आसान था, क्योंकि यह एक डोज़ी था।

शुरू करने के लिए, मैंने अपने टच पैनल के लिए चर जोड़े हैं, जिसमें टच पैनल और हमारे बटन दोनों के लिए कुछ समर्पित समय चर शामिल हैं। आप देखेंगे कि क्यों थोड़ी देर में।

मैंने स्टेट-मशीन को पूरी तरह से फिर से लिखा है। कोड को देखना थोड़ा भ्रमित करने वाला है, इसलिए मैंने एक ब्लॉक आरेख शामिल किया है जो यह बताता है कि क्या किया गया है।

ध्यान देने योग्य बातें: अब तीन "प्रतीक्षा" चरण हैं। टच पैनल के प्रत्येक कॉन्फ़िगरेशन के लिए एक, माप लेने से पहले वोल्टेज को व्यवस्थित करने के लिए, और एक बटन को ठीक से बहस करने के लिए समय देने के लिए। ये प्रतीक्षा चरण इसलिए हैं कि मैं बटन और टच पैनल दोनों को अपना समय चर देना चाहता था।

नोट: DEBOUNCE_TIME स्थिरांक थोड़ा कम हो सकता है। इसे बढ़ाने के लिए स्वतंत्र महसूस करें।

चरण 9: सफाई करना

सफाई करना
सफाई करना
सफाई करना
सफाई करना
सफाई करना
सफाई करना

हम इस परियोजना के लिए कोड के अंतिम संस्करण पर आ गए हैं!

आरंभ करने के लिए, मैंने बीते हुए समय की गणना करने के लिए लूप_डिफ () नामक एक फ़ंक्शन जोड़ा है। DP32 के लिए आंतरिक घड़ी एक अहस्ताक्षरित लंबी है और, हालांकि इसकी अत्यधिक संभावना नहीं है, संभावना है कि इस कोड के रनटाइम के दौरान कभी-कभी घड़ी लूप हो सकती है। उस स्थिति में, बस btn_time या पैनल_टाइम में सहेजे गए समय से वर्तमान समय को घटाना हमें कुछ अजीब देगा, इसलिए मैंने लूप होने का पता लगाने के लिए लूप_डिफ () लिखा, और उसके अनुसार व्यवहार करें।

मैंने थोड़ी सी मामूली सफाई भी की है। मैंने अब अप्रयुक्त "state_time" चर को हटा दिया है। मैंने LED_BUILTIN टैग (जो एक Arduino मानक है) से PIN_LED1 टैग (जो कि chipKit और DP32 के लिए मानक है) पर स्विच किया है। मैंने सीरियल के माध्यम से प्रक्रिया शुरू करने और समाप्त करने के बारे में सभी संदेशों को भी हटा दिया है, जो सीरियल के माध्यम से हमारे डेटा को बहुत साफ करता है।

* मैंने गणित वर्षों पहले किया था, और मुझे लगता है कि मिलिस () फ़ंक्शन के लिए वैरिएबल लूप होने से पहले एक सप्ताह के निरंतर रनटाइम की तरह कुछ लगेगा।

चरण 10: अंतिम विचार

अंतिम विचार
अंतिम विचार

और बस!

यदि आपने अनुसरण किया है, तो अब आपके पास अपने माइक्रोकंट्रोलर से जुड़ा एक कार्यशील टच पैनल होना चाहिए! यह एक छोटा प्रोजेक्ट था, लेकिन यह एक बड़े प्रोजेक्ट का हिस्सा है। मैं 271828 की प्लेट और बॉल जैसी किसी चीज़ की दिशा में काम कर रहा हूं, और ऐसा होने से पहले मुझे एक लंबा रास्ता तय करना है। मैं आपको पूरी प्रक्रिया के लिए साथ ले जाने की कोशिश करने जा रहा हूं, और प्रत्येक भाग का अपना छोटा प्रोजेक्ट होना चाहिए।

यह मेरे लिए सीखने की प्रक्रिया है, इसलिए बेझिझक अपने विचार और सुझाव नीचे कमेंट में दें।

धन्यवाद, और मैं आपको अगली बार देखूंगा!

सिफारिश की: