बटन द्वारा माइक्रोकंट्रोलर की शक्ति कैसे स्विच करें?


13

मेरे पास बैटरी पावर के साथ एक माइक्रोकंट्रोलर डिवाइस है। वर्तमान में मैं ऑन / ऑफ स्विच द्वारा पावर को टॉगल करता हूं। मैं योजनाबद्ध (और माइक्रोकंट्रोलर प्रोग्राम का कम से कम संशोधन) के साथ एक पुशबटन द्वारा बिजली टॉगल करना चाहता हूं और डिवाइस बंद होने पर कोई खपत नहीं करता है। मैं यह कैसे कर सकता हूं?

जोड़ा गया । मैं निम्नलिखित चाल जानता हूं:

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

यहां शुरू में माइक्रोकंट्रोलर पीबी 3 को उच्च पर सेट करता है और इस प्रकार डिवाइस के लिए शक्ति रखता है। लेकिन यह मेरी समस्या का हल नहीं है, क्योंकि मुझे S1 दबाकर डिवाइस को बंद करने की भी आवश्यकता है ।

जोड़ा गया । क्या मैं VT2 को सर्किट से निकाल सकता हूं (यानी सीधे VT1 का माइक्रोकंट्रोलर ड्राइव बेस)?


क्या लैचिंग पुश-बटन स्वीकार्य समाधान होगा?
आंद्रेजाको जूल

@AndrejaKo: नहीं

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

@tcrosley यह कोई डुप्लिकेट नहीं है, आपके द्वारा संदर्भित प्रश्न की आवश्यकता नहीं है कि बटन दबाए जाने पर शक्ति को टॉगल किया जाता है, इसके लिए बस आवश्यकता है कि यह माइक्रोकंट्रोलर को स्वयं को बंद करने की अनुमति देता है।
ब्रूनो फेरेरा

@BrunoFerreira ठीक है, सहमत हूं - मैंने अपनी पिछली टिप्पणी हटा दी है। मैंने इस उत्तर में माइक्रो को लाइन जोड़ी, लेकिन मैंने जेनर को शामिल नहीं किया जैसा कि आपने अपने उत्तर में किया है जो एक अच्छा जोड़ है।
tcrosley

जवाबों:


6

आपके द्वारा प्रदान किए गए सर्किट के आधार पर, आप स्विच (S1) (स्विच से जुड़ा कैथोड) के ठीक बाद श्रृंखला में एक डायोड जोड़ सकते हैं और उन्हें आप एक इनपुट का उपयोग करके पता लगा सकते हैं कि क्या स्विच फिर से दबाया गया था, यदि हां, तो बंद करें PB3।
संशोधन की आवश्यकता है

जेनर डायोड बिजली की आपूर्ति से आने वाले वोल्टेज से पीआईसी इनपुट की सुरक्षा करता है।


डायोड की क्या भूमिका है?
m.Alin

@ m.Alin यहाँ डायोड माइक्रोकंट्रोलर को स्विच जारी होने पर पता लगाने की अनुमति देता है। यदि हमारे पास डायोड नहीं है, जब VT1 का संचालन शुरू होता है तो हमारे पास हमेशा माइक्रोकंट्रोलर इनपुट पर एक उच्च स्तर होगा।
ब्रूनो फेरेरा

8

कैसे हो तुम सच में बंद की जरूरत है? कई आधुनिक माइक्रोकंट्रोलर छोटी बैटरी के सेल्फ डिस्चार्ज करंट के नीचे अच्छी तरह से सोते हैं। आपके पास पुशबटन केवल सूक्ष्म रूप से I / O पिन को चला सकता है, जो तब नींद और सक्रिय मोड के बीच प्रत्येक बटन दबाता है। कुछ डिबगिंग की जरूरत होगी, लेकिन यह सब फर्मवेयर में भी उल्लेखनीय है।

इस तरह की ऑन / ऑफ विधि आजकल बहुत आम हो रही है। जब यह केवल एक µA लेता है, तो एक माइक्रोकंट्रोलर को वास्तव में बंद होने की ज़रूरत नहीं है, बस सोता है, जिसे वह अपने नियंत्रण में कर सकता है। बटन लाइन को किसी ऐसी चीज से तार करना होता है जिससे माइक्रो नींद से जाग सकते हैं, लेकिन हर माइक्रो के बारे में कम से कम उनमें से एक है, आमतौर पर कई।


1
सहमत, आजकल मेरे बहुत से डिज़ाइन में ऑन / ऑफ बटन भी नहीं है, वे बस एक बटन पुश पर उठते हैं।
ओली ग्लेसर

मी डिवाइस में एलसीडी और अन्य परिधीय भी हैं। इस प्रकार मुझे इसे भी कम करना चाहिए।

4
@user: इसका मतलब यह नहीं है कि आपको माइक्रो, केवल अन्य लॉजिक को डाउन करना होगा। माइक्रो ऑन / ऑफ थिंकिंग करने के साथ, माइक्रो अन्य उपकरणों को बिजली को नियंत्रित कर सकता है ताकि माइक्रो सोते समय वे बंद हो जाएं। इसका मतलब है कि आपके पास एक जानबूझकर डिजिटल आउटपुट है जो चीजों को स्विच करने और बंद करने के लिए जो भी ध्रुवीयता सुविधाजनक है, हो सकता है, और आपको एनालॉग हार्डवेयर में टॉगल को लागू करने की आवश्यकता नहीं है।
ओलिन लेट्रोप

भले ही कई माइक्रोकंट्रोलर में नींद की मात्रा बहुत कम हो, लेकिन गुणवत्ता नियामकों की कीमत क्रैमी वालों से अधिक होती है। एक नियामक जो एक अतिरिक्त 250uA (या यहां तक ​​कि 2.5mA) का उपयोग करता है, ठीक हो सकता है अगर यह केवल एक उपकरण के उपयोग में होने पर सक्रिय होना है, लेकिन यह पूरी तरह से अस्वीकार्य होगा यदि किसी डिवाइस को "स्विच ऑफ" होने पर भी इसे सक्रिय होना चाहिए । एक उत्पाद जो मैंने कुछ साल पहले डिज़ाइन किया था, उसमें भी एक नियामक का उपयोग नहीं किया गया था - इसके बजाय इसमें तीन ट्रांजिस्टर और लगभग सात प्रतिरोधों का उपयोग किया गया था जो प्रोसेसर-नियंत्रित शटडाउन के साथ नाममात्र 5-वोल्ट आपूर्ति प्रदान करते थे। "रेगुलेटर" मानकों से इसकी वोल्टेज सटीकता वास्तव में बहुत ही
खतरनाक थी

1
@ ओलिनथ्रोप: दो 2 एन 3094 और एक 2 एन 3906 की कीमत 0.07 डॉलर से कम है। यहां तक ​​कि अगर एक आंकड़े में दस घटक हैं, तो प्रत्येक को विधानसभा में एक पैसा खर्च होता है, फिर भी प्रति यूनिट एक पैसा बचाता है - अगर 100,000 इकाइयां निर्मित होती हैं, तो यह $ 10,000 है। यदि किसी उत्पाद में उस तरह का आयतन नहीं है, तो वह $ 0.10 निचोड़ने की कोशिश करने लायक नहीं हो सकता है; अगर आज के नियामक उपलब्ध थे जब मैंने इस चीज़ को डिज़ाइन किया था, और अगर मुझे पहले से पता नहीं था कि यह कितनी अच्छी तरह से बिकेगा, तो मैंने शायद स्टैंडबाय नियंत्रण के साथ एक नियामक का उपयोग किया होगा, लेकिन मेरा सर्किट काम करता है और किसी भी चीज़ से सस्ता है; कोई कारण नहीं इसका उपयोग करने के लिए नहीं है।
सुपरकैट

3

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

संदर्भ सर्किट:

टॉगल स्विच

पहले तो P-MOSFET बंद है, इसलिए Q2 पर कोई आधार करंट नहीं है, जो बंद है। Q1 बंद है, इसलिए Q1c 5V पर है। सर्किट स्थिर है।

जब S1 (+ और - नोड्स को अनदेखा करते हैं, तो वे वहां SPICE ट्रिगरिंग उद्देश्यों के लिए होते हैं) को 5V दबाया जाता है, Q1c को Q2 बेस से जोड़ा जाता है, इसे चालू करता है। यह P-MOSFET गेट को जमीन पर खींचता है, इसे चालू भी करता है।
R4 अब 5V देखता है और जब S1 जारी किया जाता है, यह इसे खुला रखने के लिए आवश्यक करंट के साथ Q2s बेस प्रदान करता है (और इसलिए MOSFET को भी) Q1 को चालू किया जाता है जब R2 C1 से ~ 600mV पर चार्ज होता है, जिस समय Q1c ​​होता है <200mV (अर्थात Q1 चालू है)
सर्किट अब फिर से स्थिर है।

जब S1 को फिर से दबाया जाता है, तो Q1 को बंद करने से R4 (जो कि Q2 पर रख रहा है) से Q1 को चालू करता है। R1 MOSFET बेस को 5V तक खींचता है और इसे फिर से स्विच करता है।

यहाँ अनुकार है (V (पुश) उच्च का प्रतिनिधित्व करता है जब बटन धकेल दिया जाता है):

ToggleSwitchSim

इसके अलावा, हम वर्तमान प्रमुखों को शून्य से बिजली बंद करने के बाद देख सकते हैं (जैसा कि C1 डिस्चार्ज और Q1 बंद हो जाता है) इसलिए सर्किट ऑफ स्टेट में कोई बिजली नहीं खाता है (I (V1 के लिए कर्सर) 19.86s पर है और 329nA मापता है:)

ToggleSwitchPower

मूल सर्किट विचार मेरा नहीं है, यह डेव जोन्स से EEVblog पर आता है


1

जैसा कि ब्रूनो फेरेरा ने सुझाव दिया, बटन को "ऑफ" स्विच के रूप में कार्य करने की अनुमति देने का सबसे आसान तरीका यह है कि आपके सर्किट को बदल दिया जाए ताकि प्रोसेसर को यह पता चल सके कि बटन को धक्का दिया गया है। मुझे लगता है कि कोई भी इसके लिए Zener की आवश्यकता के बिना VDD की अधिकता में वोल्टेज के खिलाफ प्रोसेसर के इनपुट की रक्षा के लिए उचित रूप से अच्छी तरह से प्रतिरोधों का उपयोग कर सकता है।

यहां एक सर्किट डिज़ाइन का एक मोटा स्केच है जिसका आप उपयोग कर सकते हैं। दायां आधा प्रोसेसर के व्यवहार का प्रतिनिधित्व करता है, और मैंने एक नियामक के लिए खड़े होने के लिए ट्रांजिस्टर, जेनर और प्रतिरोधक के संयोजन का उपयोग किया। प्रोसेसर के आउटपुट को गेट के बजाय एनालॉग VdD स्विच के उपयोग से दर्शाया जाता है, क्योंकि इस सिम्युलेटर में गेट हमेशा + 5V आउटपुट उत्पन्न करते हैं।

सर्किट का एक प्रमुख पहलू, जिसे अनदेखा किए जाने पर परेशानी हो सकती है, यह है कि इसे डिज़ाइन किया गया है ताकि प्रोसेसर सर्किट को चालू न कर सके जब तक कि इसका वीडीडी कम से कम ~ 3.6 वोल्ट न हो; मैंने सिम्युलेटर में भी हेराफेरी की है ताकि प्रोसेसर हमेशा अपने आउटपुट को चालू करने की कोशिश करे जब भी उसका वीडीडी 3.5 वोल्ट से नीचे हो। मैंने बहुत सारे डिज़ाइन देखे हैं जो यह मानते हैं कि प्रोसेसर एक तर्क को उच्च आउटपुट देने की कोशिश नहीं करेंगे क्योंकि उनकी शक्ति चली जाती है। परीक्षण में प्रयुक्त चिप्स के कुछ बैचों के साथ यह धारणा ठीक काम कर सकती है, लेकिन फिर पूर्ण पैमाने पर उत्पादन में उपयोग किए गए चिप्स के अन्य बैचों के साथ विफल हो जाती है। अधिकांश प्रोसेसर का व्यवहार अनिर्दिष्ट वोल्टेज परिस्थितियों के दौरान अनिर्दिष्ट है; एक अच्छे डिज़ाइन को इंजीनियर किया जाना चाहिए ताकि ऐसी स्थितियों के दौरान प्रोसेसर का व्यवहार कोई फर्क न पड़े (मामूली ध्यान दें: यह मान लेना सुरक्षित है कि प्रोसेसर जो 'isn' है स्पष्ट रूप से ऐसे वोल्टेज उत्पन्न करने के लिए डिज़ाइन किया गया है जो किसी भी लागू वोल्टेज से अधिक हैं वे जादुई रूप से ऐसा करना शुरू नहीं करेंगे; मुझे नहीं लगता कि इसके लिए एक स्पष्ट कल्पना है, लेकिन मुझे लगता है कि ज्यादातर मामलों में यह सुरक्षित रूप से अनुमान लगाया जा सकता है)।

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