क्या अर्डुइनो पावर को अचानक हटा देना सुरक्षित है? [बन्द है]


12

अगर मेरे पास एक Arduino है, तो क्या मैं अचानक इसे भ्रष्ट किए बिना बिजली को चालू और बंद कर सकता हूं? यदि मैं एक ऐसा उत्पाद डिजाइन कर रहा हूं जिसमें ऑन / ऑफ स्विच है, तो क्या मुझे बिजली बंद करने से पहले एक देरी को शामिल करने की आवश्यकता है ताकि माइक्रोकंट्रोलर किसी तरह का एक साफ बंद कर सके? या सिर्फ एक एसपीएसटी स्विच को अरुडिनो की बिजली लाइन से जोड़ना ठीक है?

(उत्पाद डिज़ाइन करके, मेरा मतलब है कि अन्य घटकों के साथ कस्टम बोर्ड पर स्वतंत्र रूप से Arduino कोड के साथ ATmega का उपयोग करना।)

संपादित करें: Arduino से मेरा मतलब सिर्फ Arduino बूटलोडर को चमकाना है ताकि मैं AVR के बजाय Arduino में प्रोग्राम कर सकूं। जिस चिप का मैं उपयोग करना चाहता हूं, वह है Atmel atmega328P मुझे किसी भी EEPROM उपयोग की आवश्यकता नहीं है।


3
ध्यान दें कि "Arduino" एक ब्रांड नाम है, इसलिए इसे एक राजधानी 'ए' मिलती है। राजधानियाँ द्रव्य।
ट्रांजिस्टर

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

1
क्या हम मान सकते हैं कि आप एसडी कार्ड का उपयोग नहीं कर रहे हैं?
UKMonkey

यह आपका उत्पाद है। बिजली बंद हो जाए तो क्या आपको कुछ बचाने की ज़रूरत है? उस प्रश्न का उत्तर आपके प्रश्न का उत्तर देता है।
स्टेनलेसस्टेलरैट

जवाबों:


18

हां, एक Arduino को अचानक बंद करना सुरक्षित है।

खैर, ज्यादातर सुरक्षित।

विभिन्न Arduinos में उपयोग किए जाने वाले प्रोसेसर में तीन प्रकार की मेमोरी होती है:

  1. फ्लैश - जहां आपका प्रोग्राम संग्रहीत है। आपका कार्यक्रम यहां से सामान पढ़ सकता है, लेकिन इसे लिख नहीं सकता।

  2. RAM - जहाँ प्रोग्राम चलने में आपका प्रोग्राम वेरिएबल रखा जाता है। जब आप Arduino बंद करते हैं तो यहां डेटा गायब हो जाता है। आपका कार्यक्रम यहां लगातार पढ़ता और लिखता है।

  3. EEPROM - जहाँ आपका प्रोग्राम सामान को स्टोर कर सकता है, उसे अगली बार इसे चलाने की आवश्यकता होगी। आमतौर पर सामान जो शायद ही कभी बदलता है, लेकिन कभी भी कार्यक्रम चलाने की आवश्यकता होती है। जैसे सेंसर के लिए कैलिब्रेशन डेटा।

अधिकांश प्रोग्राम केवल फ्लैश और रैम का उपयोग करते हैं। आप Arduino को उन प्रोग्राम्स के साथ किसी भी समय चालू और बंद कर सकते हैं।

यदि आपका प्रोग्राम EEPROM को लिखता है, तो EEPROM को लिखते समय बिजली बंद करना वहां के डेटा को दूषित कर सकता है।

आपके कार्यक्रम को कैसे प्रभावित करता है यह इस बात पर निर्भर करता है कि डेटा क्या है।

यदि यह एक सेंसर के लिए अंशांकन डेटा को दूषित करता है, तो आप जो भी सेंसर का पता लगा रहे हैं, उसके लिए आपको खराब माप मिलेगा।

यदि आप अपने EEPROM डेटा के साथ चेकसम लिखते हैं, तो आप भ्रष्टाचार का पता लगा सकते हैं और आपका प्रोग्राम खराब डेटा का उपयोग करने के बजाय बंद हो सकता है।

आप निश्चित रूप से, यह जानते होंगे कि क्या आपका प्रोग्राम EEPROM को लिखता है - आपको एक अलग पुस्तकालय को लोड करना होगा और EEPROM क्षेत्र में पढ़ने और लिखने के लिए विशेष कमांड का उपयोग करना होगा।

जब आप EEPROM को लिखते हैं तो यह खतरा वास्तव में केवल उस छोटे से क्षण में होता है। चूँकि ऐसा शायद ही कभी होता है (और आमतौर पर केवल नियंत्रित स्थितियों में) यह EEPROM डेटा को दूषित करने के लिए भी दुर्लभ होगा।


सारांश:

जब तक आप EEPROM का उपयोग नहीं कर रहे हैं, तब तक आप बिना किसी खतरे के एक अरुडिनो को चालू और बंद कर सकते हैं और तब भी आप अधिकतर समय इसके साथ दूर रहेंगे।


8
"फ़्लैश - जहां आपका प्रोग्राम संग्रहीत है। आपका प्रोग्राम यहां से सामान पढ़ सकता है, लेकिन इसे लिख नहीं सकता।" - कई एवीआर चिप्स (328 पी निश्चित रूप से शामिल हैं) फ्लैश को स्व-प्रोग्राम कर सकते हैं। वास्तव में, यह कैसे Arduino प्रोग्रामिंग चक्र काम करता है; बूटलोडर, 328P पर चल रहा है, 328P को ही प्रोग्राम करता है। यह बहुत संभावना नहीं ओपी कि कर रही होगी, लेकिन यह है संभव।
14 दिसंबर को मार्सेलम

2
इसके अलावा, यदि आप इस पर अतिरिक्त हार्डवेयर के साथ एक Arduino का उपयोग करते हैं, (एक सेंसर की तरह), तो आप बाहरी संधारित्र को मापने के लिए एक संधारित्र जोड़ सकते हैं और एक पोर्टपिन खर्च कर सकते हैं, ताकि जब गायब हो जाए, तो आप सुरक्षित रूप से जो कुछ भी हो, उसे एप्रोम में सहेज सकते हैं चाहते हैं। ATmega पर EEPROM लिखने का चक्र आमतौर पर 3.4 ms है। इसलिए यदि आपका संधारित्र 5 एमएस के लिए प्रोसेसर को जीवित रख सकता है, और प्रत्येक ईप्रोम लेखन ऑपरेशन से पहले आप बाहरी शक्ति की जांच करते हैं, तो आप सुरक्षित हैं।
५:५५ पर vsz

10

हां, आप इसे दूषित किए बिना बिजली को जल्दी से बंद कर सकते हैं।

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

बिजली बंद होने पर, गैर-वाष्पशील मेमोरी में डेटा को बचाने की आवश्यकता होती है। या बिजली बंद होने पर, यह सुनिश्चित करने की आवश्यकता है कि बिजली बंद होने पर एक तंत्र सुरक्षित स्थिति में हो।

इसके लिए आपूर्ति की निगरानी की आवश्यकता होती है और प्रोसेसर को चलाने के लिए पर्याप्त पकड़ क्षमता होती है और जो कभी भी कार्य करना आवश्यक होता है।


6

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

हां, आप किसी भी चीज को दूषित या क्षतिग्रस्त किए बिना एक Arduino से बिजली निकाल सकते हैं लेकिन निम्नलिखित बातों का ध्यान रखें:

  • यदि आपका कोड EEPROM का उपयोग करता है, तो फ्लैश दूषित हो सकता है या डिवाइस फ्लैश होने पर डेटा सही से संग्रहीत नहीं हो सकता है और पावर हटा दी जाती है।

  • केवल एक ही तरह से बिजली की हानि EEPROM के अलावा नुकसान कर सकती है, जो Arduino (जैसे SD कार्ड) के साथ उपयोग किए जा रहे उपकरणों के लिए है।

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