क्या एक Arduino बहुत अधिक कमांड निष्पादन द्वारा खराब हो जाता है?


12

माफ करना अगर यह एक मूर्खतापूर्ण सवाल है, लेकिन मुझे कोई जवाब नहीं मिला।

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


जुड़े हुए प्रश्न भी देखें
जेम्स वाल्डबी - jwpat7

जवाबों:


20

नहीं, कोड MCU को "घिसता नहीं" है। सामान्य तौर पर आप जो भी कर रहे हैं, उसमें समान स्तर की गतिविधि का प्रदर्शन किया जा रहा है। यहां तक delay()कि बहुत काम करता है, जबकि यह "सुस्ती" है।

सीपीयू को कम करने के आदेश हैं - इसे एक आईडीएल या सो मोड में रखें - लेकिन इनका उपयोग एमसीयू पर "पहनने" को कम करने के बजाय बिजली बचाने के लिए किया जाता है।

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


2
लेकिन सभी अर्धचालकों की आयु, क्या वे नहीं हैं? गर्म वाहक इंजेक्शन और पूर्वाग्रह तापमान अस्थिरता वे तंत्र हैं जो मुझे याद हैं। बेशक इसमें कई साल लगेंगे।
एम.वी.

5
@MV। हां, लेकिन आप माइक्रोकंट्रोलर पर जो चलाते हैं वह वास्तव में इसे प्रभावित नहीं करता है। आप जो कुछ भी कर रहे हैं वह सीपीयू को लगभग उसी स्तर पर चला रहा है। आप इसका (हर समय) बहुत उपयोग कर रहे हैं।
Majenko

1
क्या कोड अप्रत्यक्ष रूप से उत्पन्न गर्मी को प्रभावित नहीं करेगा? गर्म घटक तेजी से नीचे गिर सकते हैं।
मस्त

3
केवल एक बहुत छोटी राशि। Even कुछ नहीं ’करते हुए भी यह कड़ी मेहनत और प्रसंस्करण कर रहा है।
Majenko

आपके जवाब के लिए धन्यवाद। अब मैं पीछे झुक सकता हूं और कोड्स को उतना ही जटिल लिख सकता हूं जितना कि मैं चाहता हूं और अपने Arduino के जीवन काल के बारे में चिंता न करें! लेकिन क्या यह बाहरी घटकों के साथ लगातार बातचीत करने का भी मामला है? पढ़ना सेंसर, एसपीआई संचार और इतने पर?
अहमाद्क्ष ah२

6

यह। यदि आप इसे 20 साल की तरह चलाते हैं, तो यह धीरे-धीरे खराब हो सकता है .... (अधिकांश अन्य भौतिक उत्पादों की तरह)? कम से कम यह कोड जटिलता पर निर्भर नहीं करता है लेकिन एक ही मेमोरी सेक्शन में कितने राइटिंग ऑपरेशन किए गए हैं। इसके अलावा, जब वह बाहर पहनता है तो यह सिर्फ ईंट हो जाएगा और यह एलईडी को ब्लिंक करने जैसा सरल कोड नहीं बन जाएगा।

एक Arduino (Uno) में तीन मेमोरी पार्ट्स होते हैं। SRAM, फ्लैश, और EEPROM। SRAM लॉजिकल ट्रांजिस्टर गेट की तरह है। यह वेरिएबल्स को स्टोर करके नहीं पहनेगा। FLASH और EEPROM में फ्लोटिंग गेट हैं। जब आप नया डेटा लिखते हैं, तो वे धीरे-धीरे पहनते हैं। Ateml माइक्रोकंट्रोलर की डेटशीट से , यह बताता है:

फ्लैश मेमोरी में कम से कम 10,000 लिखने / मिटाने के चक्र का धीरज है। (अध्याय 8.2 से)

EEPROM में कम से कम 100,000 लिखने / मिटाने के चक्रों का धीरज है। (अध्याय 8.4 से)

हालाँकि, फ़्लैश मेमोरी कोड निष्पादन के लिए एक स्थान है। Arduino चल रहा है, जबकि लेखन संचालन नहीं किया जाता है। जब आप एक नया कोड अपलोड करते हैं तो आप केवल FLASH मेमोरी लिखते हैं। जब आप कम से कम 10,000 बार कोड अपलोड करेंगे तो यह खराब हो जाएगा।

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

योग करने के लिए, यह कोड के निष्पादन द्वारा नहीं, फ़्लैश या EEPROM मेमोरी को फिर से लिखकर पहनेगा।


6

एक शौक के लिए:

सॉफ़्टवेयर से संबंधित एकमात्र जीवन सीमा सीमित करने के बारे में हो सकता है कि आप किसी प्रोग्राम के अंदर से जितनी जल्दी हो सके फ्लैश मेमोरी में लिख सकते हैं। लेकिन कुछ प्रोग्राम वैरिएबल का उपयोग करते हैं, जिन्हें बैटरी बदलने जैसी घटनाओं से बचने की आवश्यकता होती है।

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


5

... (या आम तौर पर किसी भी अन्य माइक्रो-नियंत्रक) ...

अन्य उत्तर महान हैं, लेकिन एक छोटा अपवाद है।

फेरोइलेक्ट्रिक रैम (FRAM) मेमोरी का एक रूप है जो फ्लैश और EEPROM की गैर-अस्थिरता, SRAM की लेखन क्षमता और DRAM के घनत्व को जोड़ती है।

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

FRU का उपयोग करने वाले MCU के उदाहरणों में TI की MSP430FRxx लाइन शामिल है


1
सामान्य तौर पर अगर FRAM है तो कोई अन्य मेमोरी नहीं है। फ्लैश भी नहीं।
Majenko

3

शायद नहीं ... Atmel चिप समय के साथ गर्म हो सकती है (यहां तक ​​कि एक देरी भी इसे रोकती नहीं है), हालांकि अगर इसकी गर्मी जारी करने की संभावना है तो मुझे कोई समस्या नहीं दिखती है। लेकिन ज्यादातर केवल ओवरक्लॉकिंग वास्तव में गंभीर समस्याएं पैदा कर सकता है, या पूरी तरह से बंद बॉक्स में या गर्म वातावरण में अरुडिनो का उपयोग कर सकता है।

तुलना में: कई कंप्यूटर सालों से बिना स्विच किए चल रहे हैं, Atmel (चिप) इस मायने में नहीं है कि जब तक उत्पन्न गर्मी से राहत मिल सकती है।

आप यहाँ Atmels में हीट सेंसर के बारे में अधिक पढ़ सकते हैं: आंतरिक तापमान सेंसर


2
Arduino जिस तरह से देरी करता है, लगातार जाँच कर रहा है कि क्या पर्याप्त समय बीत चुका है। इसलिए प्रोग्राम चलाना, या delayसमान मात्रा में प्रोसेसिंग पावर का उपयोग करना।
गेरबेन

मैं उस हिस्से को अपडेट (हटा) दूंगा ... धन्यवाद!
मिशेल कीजर्स

एक अंतर है - अधिकांश कंप्यूटरों में आज बिजली की बचत सुविधाओं के टन हैं; बहुत सारी चीजें जरूरत न होने पर बिजली बंद कर देती हैं, और यह बहुत अधिक स्वचालित रूप से होता है। Arduino में बिजली के उपयोग को कम करने के तरीके भी हैं, लेकिन आपको उन्हें स्पष्ट रूप से उपयोग करने की आवश्यकता है। अगर आपको किसी ऐसी चीज की जरूरत है, जो ज्यादातर समय पावर्ड-डाउन हो, तो learn.sparkfun.com/tutorials/reducing-arduino-power-consumption शुरू करने का एक शानदार तरीका है। विशेष रूप से, कम शक्ति वाली नींद एक हजार गुना बिजली की खपत को छोड़ देती है - इसके विपरीत delay, जो कि सीपीयू को नियंत्रित करती है। इसकी लागत निश्चित रूप से है :)
लुअन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.