विज्ञापन

क्या आप जानते हैं कि Arduino डेटा को स्टोर कर सकता है जब वह बंद होता है? फ्लैश मेमोरी में संग्रहित स्केच नहीं। मैं EEPROM में चर डेटा के बारे में बात कर रहा हूँ। मेरे साथ जुड़ें क्योंकि मैं आपको दिखाता हूं कि इसे कैसे पढ़ना और लिखना है, और यह आपकी परियोजनाओं के लिए क्या कर सकता है।

यदि आप Arduino पर नए हैं, तो सुनिश्चित करें कि आप हमारी जाँच करें शुरुआती मार्गदर्शक Arduino के साथ शुरुआत करना: एक शुरुआती गाइडArduino एक ओपन-सोर्स इलेक्ट्रॉनिक्स प्रोटोटाइपिंग प्लेटफॉर्म है जो लचीले, आसानी से उपयोग होने वाले हार्डवेयर और सॉफ्टवेयर पर आधारित है। यह कलाकारों, डिजाइनरों, शौकीनों और इंटरैक्टिव वस्तुओं या वातावरण बनाने में रुचि रखने वाले किसी भी व्यक्ति के लिए अभिप्रेत है। अधिक पढ़ें .

EEPROM क्या है?

EEPROM का मतलब है विद्युत व्यामार्जनीय क्रमादेश केवल पढने की यादास्त. यह एक प्रकार की गैर-वाष्पशील मेमोरी है। यदि आप यह नहीं समझते हैं कि इसका क्या मतलब है, तो चिंता न करें। यह केवल डेटा को हटाए गए पावर के साथ भी संग्रहीत करता है (इसके विपरीत राम राम को एक त्वरित और गंदा गाइड: आपको क्या जानना चाहिए

रैम हर कंप्यूटर का एक महत्वपूर्ण घटक है, लेकिन यह भ्रामक हो सकता है। हम आपको आसानी से समझ में आने वाली शर्तों को तोड़ देंगे। अधिक पढ़ें , जो किसी भी डेटा को बनाए रखने के लिए बिजली की जरूरत है)।

EEPROM उदाहरण शॉट

EEPROM का उपयोग प्रोसेसर के असंख्य में किया जाता है, जैसे कि फील्ड-प्रोग्रामेबल गेट ऐरे (FPGA) में उपयोग किया जाता है मैट्रिक्स निर्माता रास्पबेरी पाई समीक्षा के लिए मैट्रिक्स निर्मातामैट्रिक्स निर्माता आपके पाई के लिए एक स्विस सेना चाकू है, जिसमें 15 सेंसर, संचार प्रोटोकॉल का एक सूट, आरजीबी एलईडी की एक अंगूठी, एक माइक्रोफोन सरणी, और बहुत कुछ है! अधिक पढ़ें पाई हाट। सभी Arduinos में EEPROM उपलब्ध है, लेकिन क्षमता प्रति मॉडल बदलती है। सुनिश्चित करें कि आप हमारी नज़र डालें खरीद गाइड Arduino ख़रीदना गाइड: आपको कौन सा बोर्ड मिलना चाहिए?वहाँ Arduino बोर्डों के कई अलग-अलग प्रकार हैं, आपको भ्रमित होने के लिए क्षमा किया जाएगा। आपको अपने प्रोजेक्ट के लिए कौन सा खरीदना चाहिए? हमें इस Arduino गाइड खरीदने के साथ मदद करते हैं! अधिक पढ़ें प्रत्येक बोर्ड पर अधिक जानकारी के लिए।

यह कैसे काम करता है?

EEPROM का उपयोग करके विद्युत रूप से मिटा दिया और प्रोग्राम किया गया है फाउलर-नोर्डहेम टनलिंग. इसका उपयोग करने में सक्षम होने के लिए आपको तकनीकी विवरणों को जानने की आवश्यकता नहीं है। मूल आधार यह है कि बिजली का उपयोग द्विआधारी डेटा को बदलने के लिए किया जाता है (बाइनरी क्या है बाइनरी क्या है? [प्रौद्योगिकी समझाया]यह देखते हुए कि बाइनरी कंप्यूटर के अस्तित्व के लिए पूरी तरह से मौलिक है, यह अजीब लगता है कि हमने पहले कभी भी इस विषय से निपटा नहीं है - इसलिए आज मैंने सोचा कि मैं बाइनरी का संक्षिप्त विवरण देता हूं ... अधिक पढ़ें ). इसे इलेक्ट्रॉनिक तरीके से पढ़ा, मिटाया और फिर से लिखा जा सकता है।

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

EEPROM क्लोज अप

जीवन प्रत्याशा

हालांकि Arduino में EEPROM का उपयोग करना आसान है, लेकिन इसमें एक सीमित जीवन है। EEPROM 100,000 रीड / इरेज़ साइकिल को हैंडल करने के लिए निर्दिष्ट है। इसका मतलब यह है कि आप EEPROM के अस्थिर होने से पहले 100,000 बार डेटा को लिख या फिर से मिटा सकते हैं। वास्तव में, Atmel (Arduino "चिप" के निर्माता) अर्धचालक, प्रत्येक और हर प्रोसेसर की सहिष्णुता के आधार पर चक्रों की उच्च या निम्न संख्या को संभाल सकते हैं।

EEPROM क्लोज अप

एक बार जब कोई स्थान लिखा और मिटा दिया जाता है तो कई बार यह अविश्वसनीय हो सकता है। यह सही डेटा नहीं लौटा सकता है, या पड़ोसी बिट से मान वापस कर सकता है।

यह बहुत कुछ लिखने की तरह लग सकता है, लेकिन यदि प्रोग्राम को पढ़ने और लिखने में (एक में) इस सीमा तक पहुंचना आसान हो सकता है पाश, उदाहरण के लिए)। पठन डेटा सिलिकॉन को नीचा नहीं करता है, केवल लेखन करता है. आप बिना डर ​​के जितना चाहे उतना EEPROM का डेटा पढ़ सकते हैं!

यह ध्यान रखना महत्वपूर्ण है कि यह सीमा प्रत्येक मेमोरी स्थान पर लागू होती है। आपके Arduino में EEPROM में 1,000 या अधिक मेमोरी स्थान उपलब्ध हो सकते हैं, इसलिए यदि आप एक स्थान पर कई बार लिखते हैं, तो यह केवल उस स्थान पर प्रभाव डालता है, और किसी अन्य में नहीं। बाद में मैं चर्चा करूंगा लेवलिंग पहनें, जो समान रूप से डेटा वितरित करके EEPROM पहनने को कम कर सकता है - कुछ ऐसा SSDs अपने SSD के शेष जीवनकाल का अनुमान कैसे लगाएंसभी SSD में साइकिल लिखने के कारण सीमित जीवनकाल होता है (हालाँकि यह जीवन काल आपके विचार से बहुत लंबा है)। यहां बताया गया है कि आप अनुमान लगा सकते हैं कि आप अंत के कितने करीब हैं। अधिक पढ़ें उपयोग करना।

यह किसके लिए उपयोगी है?

EEPROM अपने Arduino परियोजनाओं के लिए अविश्वसनीय रूप से उपयोगी है। चूंकि यह डेटा हटाए जाने के बाद भी याद रहता है, इसलिए आप Arduino की स्थिति संग्रहीत कर सकते हैं। शायद आप एक निर्माण कर सकते हैं लेजर बुर्ज प्यू प्यू! कैसे एक Arduino के साथ एक लेजर बुर्ज बनाने के लिएक्या आप बोर हो रहे हैं? के रूप में अच्छी तरह से एक लेजर बुर्ज का निर्माण हो सकता है। अधिक पढ़ें जो अपनी स्थिति को याद रखता है या "बारूद" शेष है। आप इसका उपयोग कर सकते हैं अपने उपकरणों पर नियंत्रण रखें एक Arduino से नियंत्रण उपकरण: होम ऑटोमेशन की शुरुआतपिछली बार, मैंने आपको अपने Arduino प्रोजेक्ट्स भाषण को SiriProxy, OS X's के माध्यम से नियंत्रित करने के कुछ तरीके दिखाए थे अंतर्निहित बोलने योग्य आइटम, और कुछ ऑटोमेटर स्क्रिप्टिंग, या यहां तक ​​कि एक समर्पित आवाज मान्यता हार्डवेयर टुकड़ा। मैं... अधिक पढ़ें , और लॉग करें कि आपका उपकरण कितनी बार सक्रिय हुआ था।

EEPROM सेटिंग्स या उच्च स्कोर जैसी चीजों के लिए सबसे उपयुक्त है। यदि आप नियमित रूप से जटिल डेटा लिखना चाहते हैं, तो शायद एक पर विचार करें ईथरनेट ढाल एक ईथरनेट शील्ड के साथ अपने Arduino प्रोजेक्ट को अपनी खुद की मिनी-वेबसर्वर देंकुछ समय पहले, मैंने आपको दिखाया कि आपके Arduino के लिए एक इंटरनेट कंट्रोल सिस्टम कैसे सेटअप किया जाए - लेकिन इंटरनेट कनेक्शन बनाए रखने के लिए इसे USB के माध्यम से कंप्यूटर से कनेक्ट रहना पड़ता है ... अधिक पढ़ें (अंतर्निहित एसडी स्लॉट के साथ) या ए रास्पबेरी पाई रास्पबेरी पाई: अनौपचारिक ट्यूटोरियलचाहे आप एक वर्तमान पाई के स्वामी हों, जो इस क्रेडिट-कार्ड आकार डिवाइस के अधिक या संभावित स्वामी को सीखना चाहते हैं, यह एक ऐसा मार्गदर्शक नहीं है जिसे आप मिस करना चाहते हैं। अधिक पढ़ें .

EEPROM क्लोज अप

पढ़ना और लिखना

अब जब सिद्धांत समाप्त हो गया है, तो आइए देखें कि कुछ डेटा कैसे पढ़ें और लिखें! सबसे पहले, पुस्तकालय को शामिल करें (यह Arduino IDE के साथ आता है):

#शामिल 

अब कुछ डेटा लिखें:

EEPROM.write (0, 12);

यह संख्या लिखता है 12 स्थान से बाहर निकलें 0. प्रत्येक लेखन 3.3 मिलीसेकंड लेता है (सुश्री, 1000ms = 1 सेकंड)। ध्यान दें कि आप कैसे पत्र नहीं लिख सकते हैं (चार), केवल शून्य से 255 तक की संख्या की अनुमति है। यही कारण है कि EEPROM सेटिंग्स या उच्च स्कोर के लिए आदर्श है, लेकिन खिलाड़ी के नाम या शब्दों के लिए इतना अच्छा नहीं है। इस पद्धति का उपयोग करके पाठ को संग्रहीत करना संभव है (आप वर्णमाला के प्रत्येक अक्षर को एक संख्या में मैप कर सकते हैं), हालांकि आपको कई स्मृति स्थानों की आवश्यकता होगी - प्रत्येक अक्षर के लिए एक स्थान।

यहां बताया गया है कि आप उस डेटा को कैसे पढ़ते हैं:

EEPROM.read (0);

शून्य वह पता है जो आपने पहले लिखा था। यदि आपने पहले एक पते पर नहीं लिखा है, तो यह अधिकतम मान लौटाएगा (255).

कुछ और अधिक उपयोगी तरीके उपलब्ध हैं। कहें कि आप एक दशमलव स्थान या स्ट्रिंग संग्रहीत करना चाहते थे:

EEPROM.put (2, "12.67");

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

फ्लोट एफ = 0.00 एफ; EEPROM.get (2, एफ);

प्राप्त मूल्य को फ्लोट में संग्रहीत किया जाता है चर। ध्यान दें कि यह कैसे आरम्भिक है 0.00f मान के रूप में। कंपाइलर को पता है कि आप इस चर में बड़ी संख्या में स्टोर करना चाहते हैं, इसलिए यह संकलन के दौरान कुछ अतिरिक्त कॉन्फ़िगरेशन सेट कर सकता है।

EEPROM प्रलेखन पर Arduino वेबसाइट बहुत अधिक उदाहरण हैं।

समतलन पुराना होना

वियर लेवलिंग एक तकनीक है जिसका उपयोग पहनने को कम करने और EEPROM के जीवन को बढ़ाने के लिए किया जाता है। यदि आप केवल एक छोटी परियोजना पर काम कर रहे हैं, तो आपको इस बारे में चिंता करने की आवश्यकता नहीं है।

EEPROM क्लोज अप

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

int safeWrite (int data, address) {if (EEPROM.read (पता)! = data) {EEPROM.write (पता, डेटा); } }

यह कोड का एक सरल सा है, हालांकि यह केवल पूर्णांकों के लिए काम करता है! पहिया का फिर से आविष्कार करने के बजाय, Arduino EEPROM पुस्तकालय में निर्मित फ़ंक्शन का उपयोग करें:

EEPROM.update (पता, वैल);

इस पद्धति में ठीक उसी तरह के हस्ताक्षर हैं जैसे लिखो विधि, हालांकि यह काफी जरूरत लेखन की संख्या को कम कर सकता है!

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

var पता = 0। var writeCount = 0 यदि (writeCount> 75,000) लिखकर लिखें = 0 पता + = 1 EEPROM.write (पता, डेटा)

आपको EEPROM में पता और राइटकाउंट स्टोर करना होगा (और राइटऑउट को एड्रेस लोकेशन में विभाजित करना होगा)। बहुमत का समय, सुरक्षा का यह स्तर आवश्यक नहीं होगा। Arduinos भी सस्ते हैं, इसलिए आपको बैकअप खरीदना आसान हो सकता है!

अब आपको कुछ भयानक प्रोजेक्ट बनाने के लिए पर्याप्त पता होना चाहिए। हमें पता है अगर तुम कुछ शांत कर! क्या आप तस्वीरों में सभी उपकरणों को पहचान सकते हैं? हमारे लिए नीचे टिप्पणी छोड़ें!

जो ब्रिटेन के लिंकन विश्वविद्यालय से कंप्यूटर विज्ञान में स्नातक हैं। वह एक पेशेवर सॉफ़्टवेयर डेवलपर है, और जब वह ड्रोन नहीं उड़ा रहा है या संगीत नहीं लिख रहा है, तो उसे अक्सर तस्वीरें लेने या वीडियो बनाने के लिए पाया जा सकता है।