एक बटन का पता लगाने के स्मार्ट तरीके (कम बिजली की खपत)


28

एक विशेष परियोजना के लिए एक बैठक के दौरान मुझे एक एमसीयू के साथ एक बटन पर एक धक्का का पता लगाने के तरीके के बारे में सोचने के लिए कहा गया था। पता लगाने के लिए संभव के रूप में कम शक्ति का उपभोग करना चाहिए। पहली नज़र में, मुझे लगा कि ख़ास सर्किट एक पुल-अप या पुल-डाउन के साथ है:

ढांच के रूप में

इस सर्किट का अनुकरण करें - सर्किटलैब का उपयोग करके बनाई गई योजनाबद्ध

मैं यहाँ कुछ एंटी-बाउंस सुविधाओं के लिए खाता नहीं हूँ, क्योंकि यह इस प्रश्न के दायरे से बाहर है। या तो मामले में, जब बटन को धक्का दिया जाता है, तो प्रवाह का कुल वर्तमान मूल्य प्रतिरोधक मूल्य पर निर्भर करता है। इसे (वर्तमान) कम करने के लिए, मैं रोकनेवाला मूल्य बढ़ा सकता हूं लेकिन इतना नहीं, अगर मैं सही हूं, तो यह इनपुट पिन लीकेज मूल्य पर भी निर्भर करता है। इसके अलावा, एक बड़ा अवरोधक धीरे-धीरे ठीक हो जाएगा।

मेरा प्रश्न निम्नलिखित है: एक बटन दबाकर पता लगाने के लिए स्मार्ट तरीके क्या हैं जो बिजली की खपत नहीं करते हैं (आमतौर पर एक उच्च शक्ति खपत एप्लिकेशन के लिए)? बटन दबाए जाने पर क्या कोई विधियाँ हैं जो मुश्किल से बिजली की खपत करती हैं?


5
10k का पुल-डाउन लगभग कोई शक्ति नहीं खाता है। 3.3V 330uA देता है। और अधिकांश आधुनिक एमसीयू में आपके पास आंतरिक रूप से एक सेट करने का विकल्प होता है, जिसमें अधिक प्रतिरोध भी होगा। कहा जा रहा है, आप एक BJT या MOSFET के माध्यम से MCU पिन से बटन आपूर्ति को सक्रिय कर सकते हैं। केवल पढ़ने के दौरान इसे सक्रिय करें, और मतदान के साथ पढ़ें।
लुंडिन

27
μ

6
वास्तव में, कई माइक्रोकंट्रोलर नींद की धाराओं को 2-10 μA तक कम कर सकते हैं। 30x बर्बाद करना कि एक ही पुल-डाउन पर एक तरह का दुःख होता है, विशेषकर बैटरी चालित स्थिति में।
whatsisname

1
एक पुल डाउन पर आप कितना बड़ा अवरोधक उपयोग कर सकते हैं यह पिन प्रतिबाधा पर निर्भर करता है और वे किस वोल्टेज पर स्विच करते हैं। मान लें कि आपके पास एक उच्च प्रतिबाधा अवस्था में 3.3v पिन है जो 2.4v पर स्विच करता है, आपको वास्तव में इनपुट की तुलना में थोड़ा कम प्रतिबाधा चाहिए। मैं आपको एक पोटेंशियोमीटर संलग्न करने की सलाह दूंगा और यह बताऊंगा कि पिन को मज़बूती से काम में रखने के लिए आप एक प्रतिरोधक का कितना उच्च मूल्य इस्तेमाल कर सकते हैं, और फिर मार्जिन रखने के लिए मूल्य में 20% कम कर सकते हैं।
नशे में कोड बंदर

जवाबों:


29

एक कम-वर्तमान विधि जिसका मैंने एक बार उपयोग किया था वह दो माइक्रोकंट्रोलर I / O पिंस के बीच एक स्विच से जुड़ा था।

एक I / O को आउटपुट (SWO) के रूप में कॉन्फ़िगर किया गया था। दूसरे को एक इनपुट (SWI) के रूप में कॉन्फ़िगर किया गया था, जिसके प्रोग्रामेबल इंटरनल पुल-अप सक्षम थे।

स्विच राज्य को एक सॉफ्टवेयर इंटरप्ट रूटीन द्वारा (हर 10 ms) बार-बार नमूना लिया गया था। पढ़ने का क्रम था: SWO को कम चलाना, SWI को पढ़ना, SWO को ऊँचा चलाना।

इसका मतलब यह था कि एक दबाए गए स्विच ने स्कैनिंग के दौरान केवल 1 से भी कम समय के लिए SWI पुल-डाउन करंट को अपने और SWO के माध्यम से खींचा, जबकि एक अनप्रेस्ड स्विच ने कोई करंट नहीं खींचा। इस वर्तमान ड्रॉ के लिए <1 हमें हर 10 एमएस में एक छोटे से औसत औसत खपत का परिणाम मिला।


यह संदिग्ध है कि आपको इस तकनीक का उपयोग करके पुल-अप की आवश्यकता क्यों है। अनुक्रम SWO कम, SWI पढ़ें, SWO उच्च, SWI पढ़ें यह बताने के लिए पर्याप्त हो सकता है कि पिन एक साथ जुड़े हुए हैं या नहीं। आप कई स्विच के बीच SWO भी साझा कर सकते हैं।
ट्रेवर_जी

8
@ सर्वर स्विच खुला होने पर फ्लोटिंग इनपुट को छोड़ना विशेष रूप से अच्छा विचार नहीं है। यदि यह इनपुट मध्यवर्ती अवस्था में है तो तकनीक के आधार पर यह इनपुट बफर को बिजली की खपत का कारण बना सकता है।
रॉय

1
@Trevor प्रभावी रूप से पुल को रोकनेवाला को sw1 sw2 कर्तव्य चक्र से गुणा करता है। फिर भी हमें ओपी की स्कीम में वापस लाने की कोशिश की गई। यह कम शोर वाले माहौल में काम कर सकता है।
रॉय

2
क्या यह तथ्य नहीं है कि एमसीयू को एक अवरोध पर निर्भर रहने के बजाय मतदान करने के लिए जागृत रहना पड़ता है, जो कि छोटे स्विच ड्यूटी साइकिल से किसी भी बचत को पूरी तरह से रद्द कर देता है?
आंद्रेकआर

5
हाय @AndreKR, हमारे पास एक बैटरी-संचालित माइक्रोकंट्रोलर एप्लिकेशन था और इसे कई स्विच से जुड़े होने की आवश्यकता थी इसलिए हमने इस तकनीक का उपयोग किया क्योंकि यह काफी सरल था। हमने केवल स्विच डिटेक्शन के लिए MCU में नहीं डाला था। MCU ने स्लीप मोड में 900nA जैसी कोई चीज अपने 10ms के बीच में खींची, जिससे पुल-अप बचत सार्थक रही।
टोनीएम

23

एक SPDT ( S ingle P ole D ouble T hrow) बटन आपका अल्ट्रा कुशल बटन होगा।

यहाँ छवि विवरण दर्ज करें

स्रोत: http://www.ni.com/white-paper/3960/en/

आपके मामले में 1P MCU, 1T से VCC, 2T से GND तक जाएगा।


+1 .. इसने मुझे हमेशा प्रेरित किया है कि उपमहाद्वीप SPDTs को खोजने के लिए या तो बहुत कठिन हैं या बहुत अधिक लागत ...
ट्रेवर_जी

1
@Trevor हाँ ... कुछ चीजें दुख की बात है कि बहुत ज्यादा है। जबकि अन्य वस्तुओं को कम किया जाता है (उदाहरण के लिए MCU)। आपके पास यह सब नहीं हो सकता।
हैरी स्वेन्सन

यह एक महान विचार है। अफसोस की बात है कि मैं एक SPDT CMS बटन नहीं ढूंढ पाया, जो मेरी जरूरतों के हिसाब से हो। हालांकि मैं इस सर्किट को ध्यान में
रखूंगा

10

बटन कब तक दबाया जाएगा? यदि यह टॉगल स्विच नहीं है (जो अपनी स्थिति को बनाए रखता है) लेकिन एक क्षणिक स्विच तो तब बहता है जब बटन दबाया जाता है, यह बहुत कम समय के कारण अप्रासंगिक होता है कि बटन वास्तव में बंद है।

या तो आपके द्वारा दिखाए गए दो सर्किट में से एक ठीक है, इससे कोई फर्क नहीं पड़ता।

आप मान सकते हैं कि MCU इनपुट में इनपुट रिसाव और / या वर्तमान नगण्य है । सभी MCU इन दिनों CMOS तकनीक में हैं और व्यावहारिक रूप से शून्य इनपुट करंट है। तो इस पर विचार करना बंद करो, यह वहां नहीं है।

बाहरी अवरोधक का उपयोग करने के बजाय आप कई एमसीयू के इनपुट में आंतरिक पुल-अप रोकनेवाला निर्माण का उपयोग कर सकते हैं। इस अवरोधक का मान अपेक्षाकृत कम हो सकता है (50 kohm शायद) इतना छोटा करंट प्रवाहित होगा जब बटन दबाया जाएगा।

आप पुल-अप / पुल-डाउन के लिए सुरक्षित रूप से 1 मोह्म अवरोधक का भी उपयोग कर सकते हैं। केवल बहुत ही "गंदे" (विद्युत रूप से बोलने वाले) वातावरण में आपको कम मूल्य की आवश्यकता हो सकती है। आप पास के अन्य सर्किट से हस्तक्षेप को दबाने के लिए स्विच के साथ समानांतर में एक 100 एनएफ संधारित्र भी रख सकते हैं।

प्रो टिप: पीसीबी पर इस तरह के संधारित्र के लिए जगह आरक्षित करें, लेकिन एक टोपी को माउंट न करें। अभी तक। मुद्दों के मामले में: इसे रखें और देखें कि क्या मदद करता है।

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


वास्तव में बटन एक क्षणिक होगा लेकिन जिस समय इसे दबाया जाएगा वह काफी लंबा (मिनट) हो सकता है
vionyst

यदि डिवाइस 24/7 पर है, तो कुछ मिनटों के बाद भी बहुत अधिक राशि नहीं हो सकती है। क्या महत्वपूर्ण है कर्तव्य चक्र, 5 मिनट प्रत्येक घंटे 5 x 60/3600 = 8.3% है। यहां तक ​​कि एक 100 यूए वर्तमान में भी स्विच मेरे परिदृश्य में औसतन 8.3 यूए का उपभोग करेगा । मेरा संदेश यह है: वर्तमान प्रणाली के पूर्ण उपभोग के साथ तुलना किए बिना स्विच का उपयोग करने पर वर्तमान पर बहुत अधिक ध्यान केंद्रित न करें। केवल जब योगदान समान होते हैं, तो यह स्विच की वर्तमान खपत में सुधार करने के लिए समझ में आता है। जब MCU लगातार 1uA का उपयोग करता है तो यह 0.1 यूए स्विच बनाने का कोई फायदा नहीं है।
बिमपेलरेकी

"MCU 1uA का लगातार उपयोग करने पर 0.1 यूए स्विच बनाने का कोई फायदा नहीं है।" यह बंद लग रहा है। मुझे लगता है कि आपका मतलब 1uA चोटी है। 10% सिर्फ स्विच के लिए अत्यधिक होगा;)
ट्रेवर_जी

@ ट्रेवर पीक नहीं, मेरा मतलब है कि MCU के लिए 1uA औसत करंट है लेकिन स्विच दबाने पर 0.1uA। एक 0.1 ए स्विच के साथ संयुक्त जो केवल (अपेक्षाकृत) छोटी अवधि के लिए दबाया जाएगा, यह स्विच कुल औसत बिजली की खपत में लगभग कुछ भी योगदान नहीं देता है क्योंकि औसत वर्तमान होगा: 100% x 1 uA + 8.3% * 0.1 uA = 1.0083 uA (उपरोक्त टिप्पणी से 8.3% का पुनः उपयोग किया गया)।
बिमपेलरेकी

2
हाँ, यह सिर्फ आप स्विच पर 0.1uA औसत मतलब की तरह पढ़ा। जो डिप-स्विच की तरह अनुचित नहीं होगा।
ट्रेवर_जी

10

एक विधि जिसका मैंने उपयोग किया है वह CMOS इनपुट्स की कैपेसिटिव प्रकृति का लाभ उठाती है।

ढांच के रूप में

इस सर्किट का अनुकरण करें - सर्किटलैब का उपयोग करके बनाई गई योजनाबद्ध

स्विच के ऊपर सर्किट में, जब बंद हो जाता है, तो पुल-डाउन रोकनेवाला को जीपीआईओ के इनपुट कैपेसिटेंस को जमीनी स्तर तक चार्ज / डिस्चार्ज करने की अनुमति देता है।

इस सर्किट के साथ चाल स्विच खोलने पर एक तर्क उच्च स्तर के लिए इनपुट रखने के लिए GPIO की द्विदिश प्रकृति का उपयोग करना है।

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

ठीक से कॉन्फ़िगर किए जाने पर, यदि बटन को पिन पर चार्ज दबाया जाता है तो रिफ्रेश रेट से तेजी से डिस्चार्ज होगा। फिर उस स्थिति को रिफ्रेश ऑपरेशन से पहले पढ़ने के रूप में रिफ्रेश एल्गोरिथ्म के हिस्से के रूप में पता लगाया जा सकता है, या एक बाधा को चलाने के लिए उपयोग किया जाता है।

पावर को संक्षेप में रिफ्रेश पल्स के दौरान उपयोग किया जाता है, दोनों कैपेसिटर को रिचार्ज करने के लिए और रोकनेवाला के माध्यम से और बंद होने पर स्विच करें। हालाँकि, ताज़ा नाड़ी की लंबाई कम है और ताज़ा आवृत्ति में मतदान की आवृत्ति अपेक्षाकृत महत्वहीन है।

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

अधिक स्थिर स्विच पढ़ने के लिए, सेट-अप डिप-स्विच की तरह, एक समर्पित दिनचर्या का उपयोग निरंतर ताज़ा चक्र के बजाय किया जा सकता है। पढ़ने के बाद, GPIO पिन को फ्लोटिंग इनपुट समस्या से बचने के लिए एक सक्रिय निम्न आउटपुट स्थिति (शून्य वर्तमान) में "पार्क किया गया" होना चाहिए।

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


1
यह वास्तव में ईएमआई के लिए बहुत कमजोर लगता है। अगर उस सर्किट के अंदर किसी भी प्रकार की रेडियो ऊर्जा मिल रही है और मुझे लगता है कि सभी दांव बंद हो गए हैं। अच्छी बात यह है कि आजकल वायरलेस सामान नहीं है :)
लंडिन

@ लुंडिन यह उतना बुरा नहीं है जितना आप सोच सकते हैं। 30 पीएफ और एक मेग एक अच्छा फिल्टर बनाते हैं।
ट्रेवर_जी

8

यदि आपका बटन एक पीजो स्विच है, तो केवल आवश्यक शक्ति बटन दबाने से उत्पन्न शक्ति है।

उदाहरण के लिए: पी 2 को दबाकर उत्पादित ऊर्जा को आर 2 / सी 1 इकट्ठा करें। D1 C1 वोल्टेज को बहुत अधिक होने से रोकता है। बटन जारी होने पर आर 1 नालियां सी 1। MCU GPIO इनपुट में होना चाहिए, कोई पुल मोड नहीं। Voilà, बटन आपूर्ति से शून्य वर्तमान ड्रा के साथ पता लगाता है।

ढांच के रूप में

इस सर्किट का अनुकरण करें - सर्किटलैब का उपयोग करके बनाई गई योजनाबद्ध


3
हम्म, क्या आप पिछले 30 वर्षों से उपयोग किए जा रहे एक सामान्य स्विच के समाधान का लाभ बना सकते हैं / दिखा सकते हैं?
बिमपेलरेकी

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

फिर भी, मेरे कैलकुलेटर में बहुत सारे बटन हैं और एक सिक्का सेल पर कम से कम 5 साल चलता है। अभी भी यह नहीं देख रहा है कि आपके समाधान से कोई लाभ कैसे होगा। मुझे अभी भी लगता है कि यह गैर-मौजूदा समस्या का एक "समाधान" है। और अधिक महंगा भी।
बिमपेलरेकी

1
ओह मैं सहमत हूँ! यह मूल मानदंडों को पूरा करता है "जितना संभव हो उतना कम बिजली का उपभोग करें", लेकिन एक मिली से कम की बचत क्यों वास्तव में उपयोगी है, इसकी कल्पना करना कठिन है।
हीथ राफेरी

पीज़ो के उच्च आउटपुट प्रतिबाधा के कारण MCU के इनपुट प्रतिबाधा को गंदा नहीं करते हैं?
स्कॉट सीडमैन

5

यदि डिवाइस को अनिश्चित काल तक या तो राज्य में रहने में सक्षम होने की आवश्यकता है, तो एसपीडीटी स्विच का उपयोग सबसे कम-शक्ति दृष्टिकोण होगा, क्योंकि एक स्थिर सर्किट को अपने स्वयं के आंतरिक रिसाव और स्विच से परे कोई वर्तमान खींचने के लिए नहीं बनाया जा सकता है। एसपीडीटी स्विच का एक अतिरिक्त लाभ यह है कि वे लगभग पूरी तरह से बहस कर सकते हैं, चाहे वे कितनी भी जल्दी संचालित हों या संपर्क कैसे हो सकते हैं, बशर्ते कि केवल एक संपर्क बंद हो जाए, इससे पहले कि दूसरा बंद हो जाए।

इस तरह के स्विच को वायरिंग करने के दो अच्छे तरीके हैं:

ढांच के रूप में

इस सर्किट का अनुकरण करें - सर्किटलैब का उपयोग करके बनाई गई योजनाबद्ध

पहले दृष्टिकोण को दूसरे की तुलना में एक कम अवरोधक की आवश्यकता होती है, लेकिन दूसरा दो ध्रुवों के बीच ओवरलैप का अधिक सहिष्णु होगा (यह सामान्य प्रवाह की तुलना में अधिक होगा, लेकिन आपूर्ति में एक मृत डाल नहीं करेगा)। ध्यान दें कि यदि स्विच एक ऐसी स्थिति में प्रवेश कर सकता है जो लंबे समय तक संयमित रूप से प्रतिरोधक है, जो सामान्य से काफी अधिक करंट जला सकता है, लेकिन सामान्य उपयोग के दौरान कोई भी प्रतिरोधक किसी भी महत्वपूर्ण करंट को नहीं लेगा, सिवाय संक्षिप्त क्षण के बीच। समय स्विच स्थिति बदलता है और आउटपुट प्रतिक्रिया करता है।


2

माइक्रोकंट्रोलर के आंतरिक पुल-अप का उपयोग करें और जब प्रेस का पता चला है तो पुल-अप को अक्षम कर दें। फिर कभी-कभी इसे बटन स्थिति की जांच करने के लिए संक्षिप्त रूप से फिर से उपयोग करना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.