विषयसूची:

एक एमसीयू पिन के साथ कई स्विच कैसे पढ़ें: 4 कदम
एक एमसीयू पिन के साथ कई स्विच कैसे पढ़ें: 4 कदम

वीडियो: एक एमसीयू पिन के साथ कई स्विच कैसे पढ़ें: 4 कदम

वीडियो: एक एमसीयू पिन के साथ कई स्विच कैसे पढ़ें: 4 कदम
वीडियो: क्या Vivaan अपने Stone Touch को कर पाएगा Reverse? | Baalveer Returns | Stone & Water 2024, जून
Anonim
एक एमसीयू पिन के साथ कई स्विच कैसे पढ़ें
एक एमसीयू पिन के साथ कई स्विच कैसे पढ़ें

क्या आप कभी किसी परियोजना (परियोजनाओं) से दूर रहे हैं और परियोजना बढ़ती और बढ़ती रहती है, जबकि आप इसमें और चीजें जोड़ते हैं (हम इसे एक फेपिंग क्रिएचरिज्म कहते हैं)? हाल ही के एक प्रोजेक्ट पर, मैं एक फ़्रीक्वेंसी मीटर का निर्माण कर रहा था और एक पाँच फ़ंक्शन सिग्नल जनरेटर / फ़्रीक्वेंसी सिंथेसाइज़र जोड़ा। मेरे पास उपलब्ध पिनों की तुलना में जल्द ही अधिक स्विच के साथ घाव हो गया, तो एक आदमी को क्या करना है?

हालाँकि, मेरे पास जल्द ही मेरे फ़नबॉक्स पर सात और स्विच थे (हाँ, इसे मैंने अपना फंक्शन जनरेटर कहा था … मुझे पता है, मेरे पास कोई रचनात्मकता नहीं है) और यहाँ एक छोटा निर्देश है जो आपको दिखा रहा है कि आप ऐसा कैसे कर सकते हैं। इसके लिए किसी शिफ्ट रजिस्टर या विशिष्ट आईसी की आवश्यकता नहीं है। वास्तव में, इसके लिए माइक्रोकंट्रोलर की आवश्यकता नहीं होती है, या तो, यदि असतत अर्धचालक यह है कि आप कैसे रोल करते हैं। यहाँ एक तरीका है जिससे आप अपने AVR (या अन्य माइक्रोकंट्रोलर…) पर एक ही पिन का उपयोग करके कई स्विच को पढ़/प्रबंधित कर सकते हैं…मैंने सुना है कि AVR के अलावा अन्य माइक्रोकंट्रोलर भी हैं, लेकिन मैं कल्पना नहीं कर सकता…)।:)

चरण 1: अनिवार्य (वास्तव में नहीं)

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

यदि आप चाहते थे कि आप इसे इंगित करने के लिए वोल्टेज नियंत्रित थरथरानवाला का उपयोग कर सकते हैं, शायद कुछ चमचमाती रोशनी के साथ, या वैकल्पिक रूप से, ध्वनि के साथ। इस 'ible में, मैं यह दिखावा करने जा रहा हूं कि हम AVR का उपयोग कर रहे हैं, लेकिन आपकी दुनिया में आप जो कुछ भी आपको खुश करते हैं उसका दिखावा कर सकते हैं। मुझे बॉब रॉस की याद आती है।

चरण 2: वोल्टेज विभक्त

वोल्टेज विभक्त
वोल्टेज विभक्त
वोल्टेज विभक्त
वोल्टेज विभक्त

अनिवार्य रूप से, जिस तरह से हम ऐसा करने जा रहे हैं वह एक तकनीक और सर्किट का उपयोग कर रहा है जिसे वोल्टेज डिवाइडर कहा जाता है। वोल्टेज डिवाइडर करते हैं, जैसा कि आपने अनुमान लगाया होगा, वी,,,,, वोल्टेज को आपके द्वारा निर्धारित कुछ मूल्य से विभाजित करें। आप कैपेसिटर और इंडिकेटर्स सहित कई घटकों के साथ वोल्टेज को विभाजित कर सकते हैं, लेकिन यहां मैं इसे अच्छे 'ओल रेसिस्टर' के साथ करने जा रहा हूं। आइडिया जो हम कर रहे हैं, वह दो घटकों को श्रृंखला में डाल रहा है, जिससे प्रत्येक व्यक्तिगत रूप से, पूरे घटक में वोल्टेज में गिरावट आएगी। अगर मुझे कोई मतलब नहीं है तो पहली तस्वीर देखें। रेल से रेल में 9V का संभावित अंतर है। 9V और 0V के बीच श्रृंखला में दो प्रतिरोधक हैं। इनमें से प्रत्येक प्रतिरोध के आधार पर अपने आप में एक वोल्टेज ड्रॉप का अनुभव करेगा, जैसा कि आप शायद वी = आईआर से याद करते हैं। यदि आप दो प्रतिरोधों के बीच एक वोल्टेज माप लेते हैं, तो आपको 9V और 0V के बीच कुछ मान मिलेगा, यह इस बात पर निर्भर करता है कि पहले रोकनेवाला में कितना वोल्टेज गिरा है और 0V से पहले दूसरे रोकनेवाला पर कितना छोड़ना बाकी है। इस स्थिति में एक रोकनेवाला में वोल्टेज ड्रॉप की गणना के लिए एक सीधा सूत्र है और यह इस तरह दिखता है। मान लीजिए कि प्रतिरोधक 1 (R1) के ऊपर वोल्टेज V1 है और प्रतिरोधक दो (R2) के ऊपर वोल्टेज V2 है। चूंकि मैं अब फ़ॉर्मेटिंग का उपयोग नहीं कर सकता, इसलिए फ़ॉर्मूला के लिए नीचे चित्र 2 देखें… इसलिए, हमारे प्रतिरोधक विभक्त में, V2 के लिए हमारे सूत्र द्वारा Vout वोल्टेज निर्धारित किया जा सकता है (चूंकि हम GND को 0V से संदर्भित करेंगे)। एक पिन से स्विच के एक गुच्छा का पता चलने से इसका क्या लेना-देना है? ठीक है, पृष्ठ चालू करें और मैं आपको दिखाऊंगा!

चरण 3: वोल्टेज विभक्त सीढ़ी

वोल्टेज विभक्त सीढ़ी
वोल्टेज विभक्त सीढ़ी

अब मान लीजिए कि हमारे पास हमारे सभी स्विच हैं, शायद छह या आठ या सोलह, सभी प्रतिरोधों के माध्यम से जुड़े हुए हैं जो प्रत्येक वोल्टेज विभक्त के रूप में कार्य करते हैं जैसे कि जब स्विच पिन की स्थिति बदलती है, तो वोल्टेज पढ़ा जाता है और वोल्टेज स्तर के आधार पर, हम जान सकते हैं कि कौन सा स्विच अभी सक्रिय हुआ था। नीचे देखें। नीचे दी गई तस्वीर में, मैंने स्विच के दो ब्लॉक जोड़े हैं। सबसे ऊपर वाले ब्लॉक में दो स्विच होते हैं, और सबसे नीचे वाले ब्लॉक में पांच स्विच होते हैं। आप अपने अलग टॉगल, क्षणिक, स्पर्श, आदि स्विच को उसी तरह कनेक्ट कर सकते हैं। ध्यान देने योग्य महत्वपूर्ण बात वह अवरोधक है जिससे आपका स्विच जुड़ा हुआ है। मेरे उदाहरण में, मैंने वोल्टेज अंतराल बनाने के लिए अगले अवरोधक के प्रतिरोध को लगभग दोगुना कर दिया है जो मापने में आसान है और स्विच के पहले या बाद में गलती नहीं है। यदि आपने पहले ध्यान नहीं दिया है, तो फिर से देखें, और महसूस करें कि हम अपने पुराने मित्र प्रतिरोधक वोल्टेज विभक्त पर वापस आ गए हैं। पहला रोकनेवाला, 10k ओम, 5V से जुड़ा है और दूसरा रोकनेवाला - रोकनेवाला जो V को निर्धारित करेगाबाहर SWITCH_ADC पिन के लिए, प्रत्येक स्विच से जुड़ा होता है और इसलिए, प्रत्येक स्विच एक विशेष Vout वोल्टेज से जुड़ा होता है जिसे SWITCH_ADC से जुड़े ADC पिन से पढ़ा जा सकता है। इसके बाद, प्रत्येक स्विच से अपेक्षित Vout निर्धारित करें जैसे

वाउट = विन * (R2 / (R1 + R2))

स्विच एक के लिए:

वाउट = 5 वी * (500 / (10000 + 500)) = 5 * 0.048 = 0.24 वी या 240 एमवी

स्विच दो के लिए:

वाउट = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V या ~ 900mV

और इसी तरह.. R2 के लिए अपने स्वयं के मूल्यों में स्थानापन्न करने के लिए स्वतंत्र महसूस करें यदि आपके पास केवल कुछ प्रतिरोधक काम हैं … यहाँ महत्वपूर्ण बात यह है कि स्विच के बीच वोल्टेज में एक व्यापक पर्याप्त अंतर रखें ताकि ADC पर त्रुटि का कोई भी मार्जिन जीत जाए। टी आपको एक पड़ोसी स्विच से अपेक्षित वोल्टेज में डाल देता है। मैंने पाया है कि सबसे आसान काम है डिवाइडर सीढ़ी बनाना और एडीसी पिन पर एक मल्टीमीटर/वोल्टमीटर लगाना और प्रत्येक पिन को दबाएं और देखें कि आपको क्या मूल्य मिलते हैं। आप जो गणना करते हैं, उस पर उन्हें सुंदर स्थान होना चाहिए। एक बार जब आपके पास एक विशेष अवरोधक का उपयोग करके प्रत्येक स्विच से सभी अपेक्षित वोल्टेज मान होते हैं, तो आप अपने एमसीयू को एडीसी पिन पढ़ सकते हैं और यह निर्धारित करने के लिए अपने ज्ञात मूल्यों की तुलना कर सकते हैं कि कौन सा स्विच दबाया गया था। उदाहरण के लिए, मान लें कि आपने एक इंटरप्ट सर्विस रूटीन पंजीकृत किया है जिसे एडीसी पिन पर पता चला परिवर्तन होने पर कॉल किया जाएगा। उस ISR के अंदर, आप ADC पढ़ सकते हैं और उस मान की तुलना अपने स्विच टेबल से कर सकते हैं। यदि आप 8-बिट ADC मान का उपयोग कर रहे हैं, तो आपका वोल्टेज 0 और 255 के बीच की संख्या में परिवर्तित हो जाएगा जो 0V और 5V के बीच के वोल्टेज से मेल खाती है। यह मानता है कि आपने अपना एडीसी इस तरह से कॉन्फ़िगर किया है।

चरण 4: सारांश

तो, अब आपको पता होना चाहिए कि स्विच के लिए GPIO पिन का उपयोग करने में मितव्ययी कैसे होना चाहिए। जब भी आप GPIO पिन पर कम चल रहे हों, या शायद ही आपके पास शुरू करने के लिए कोई हो, या यदि आपको लगता है कि आप स्विच के बैंक का उपयोग करने जा रहे हैं, तो प्रतिरोधक विभक्त आपके GPIO पिन को बचाने के लिए जाने का तरीका है, जबकि अभी भी एक प्रदान कर रहा है स्विच एक्सेस का पता लगाने के लिए मजबूत तंत्र।

सिफारिश की: