विषयसूची:

आपके Arduino का इनबिल्ट EEPROM: 6 चरण
आपके Arduino का इनबिल्ट EEPROM: 6 चरण

वीडियो: आपके Arduino का इनबिल्ट EEPROM: 6 चरण

वीडियो: आपके Arduino का इनबिल्ट EEPROM: 6 चरण
वीडियो: Amazing arduino project 2024, नवंबर
Anonim
आपके Arduino का इनबिल्ट EEPROM
आपके Arduino का इनबिल्ट EEPROM

इस लेख में हम अपने Arduino बोर्डों में आंतरिक EEPROM की जांच करने जा रहे हैं। EEPROM क्या है आप में से कुछ लोग कह रहे होंगे? EEPROM एक इलैक्ट्रिकली इरेज़ेबल प्रोग्रामेबल रीड-ओनली मेमोरी है।

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

आप आंतरिक EEPROM का उपयोग क्यों करेंगे? उन स्थितियों के लिए जहां किसी स्थिति के लिए अद्वितीय डेटा को अधिक स्थायी घर की आवश्यकता होती है। उदाहरण के लिए, एक वाणिज्यिक Arduino- आधारित प्रोजेक्ट की अद्वितीय सीरियल नंबर और निर्माण तिथि संग्रहीत करना - स्केच का एक फ़ंक्शन एलसीडी पर सीरियल नंबर प्रदर्शित कर सकता है, या डेटा को 'सर्विस स्केच' अपलोड करके पढ़ा जा सकता है। या आपको कुछ घटनाओं की गणना करने की आवश्यकता हो सकती है और उपयोगकर्ता को उन्हें रीसेट करने की अनुमति नहीं देनी चाहिए - जैसे ओडोमीटर या ऑपरेशन साइकिल-काउंटर।

चरण 1: किस प्रकार का डेटा संग्रहीत किया जा सकता है?

किस प्रकार का डाटा स्टोर किया जा सकता है?
किस प्रकार का डाटा स्टोर किया जा सकता है?

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

केवल दो अंकों के उपयोग के साथ एक द्विआधारी संख्या एक बड़ी संख्या का प्रतिनिधित्व कैसे कर सकती है? यह बहुत सारे और शून्य का उपयोग करता है। आइए एक द्विआधारी संख्या की जांच करें, मान लें कि 10101010। चूंकि यह एक आधार -2 संख्या है, प्रत्येक अंक x = 0 से आगे की शक्ति के लिए 2 का प्रतिनिधित्व करता है।

चरण 2:

छवि
छवि

देखें कि बाइनरी संख्या का प्रत्येक अंक आधार -10 संख्या का प्रतिनिधित्व कैसे कर सकता है। तो ऊपर की बाइनरी संख्या आधार -10 में 85 का प्रतिनिधित्व करती है - मान 85 आधार -10 मानों का योग है। एक अन्य उदाहरण - 11111111 बाइनरी में बेस 10 में 255 के बराबर है।

चरण 3:

अब उस बाइनरी नंबर का प्रत्येक अंक एक 'बिट' मेमोरी का उपयोग करता है, और आठ बिट एक बाइट बनाते हैं। हमारे Arduino बोर्डों में माइक्रोकंट्रोलर्स की आंतरिक सीमाओं के कारण, हम EEPROM में केवल 8-बिट नंबर (एक बाइट) स्टोर कर सकते हैं।

यह संख्या के दशमलव मान को शून्य और 255 के बीच में आने तक सीमित कर देता है। फिर यह आपको तय करना है कि उस संख्या सीमा के साथ आपके डेटा का प्रतिनिधित्व कैसे किया जा सकता है। ऐसा न होने दें - सही तरीके से व्यवस्थित संख्याएँ लगभग किसी भी चीज़ का प्रतिनिधित्व कर सकती हैं! ध्यान देने की एक सीमा है - हम कितनी बार EEPROM को पढ़ या लिख सकते हैं। निर्माता Atmel के अनुसार, EEPROM १००,००० पढ़ने/लिखने के चक्रों के लिए अच्छा है (डेटा शीट देखें)।

चरण 4:

अब हम अपने बिट्स और बाइट्स को जानते हैं, हमारे Arduino के माइक्रोकंट्रोलर में कितने बाइट्स स्टोर किए जा सकते हैं? उत्तर माइक्रोकंट्रोलर के मॉडल के आधार पर भिन्न होता है। उदाहरण के लिए:

  • Atmel ATmega328 वाले बोर्ड, जैसे कि Arduino Uno, Uno SMD, Nano, Lilypad, आदि - 1024 बाइट्स (1 किलोबाइट)
  • Atmel ATmega1280 या 2560 वाले बोर्ड, जैसे कि Arduino मेगा सीरीज़ - 4096 बाइट्स (4 किलोबाइट)
  • Atmel ATmega168 वाले बोर्ड, जैसे कि मूल Arduino Lilypad, पुराना नैनो, Diecimila आदि - 512 बाइट्स।

यदि आप अनिश्चित हैं तो Arduino हार्डवेयर इंडेक्स पर एक नज़र डालें या अपने बोर्ड सप्लायर से पूछें। यदि आपको अपने माइक्रोकंट्रोलर के पास उपलब्ध से अधिक EEPROM संग्रहण की आवश्यकता है, तो बाहरी I2C EEPROM का उपयोग करने पर विचार करें।

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

चरण 5:

EEPROM का उपयोग करने के लिए, एक पुस्तकालय की आवश्यकता होती है, इसलिए अपने रेखाचित्रों में निम्नलिखित पुस्तकालय का उपयोग करें:

#शामिल "EEPROM.h"

बाकी बहुत आसान है। डेटा का एक टुकड़ा स्टोर करने के लिए, हम निम्नलिखित फ़ंक्शन का उपयोग करते हैं:

EEPROM.लिखें (ए, बी);

पैरामीटर a डेटा b के पूर्णांक (0~255) को संग्रहीत करने के लिए EEPROM में स्थिति है। इस उदाहरण में, हमारे पास 1024 बाइट्स मेमोरी स्टोरेज है, इसलिए a का मान 0 और 1023 के बीच है। डेटा के एक टुकड़े को पुनः प्राप्त करने के लिए उतना ही सरल है, उपयोग करें:

z = EEPROM.read(a);

जहाँ z EEPROM स्थिति a से डेटा संग्रहीत करने के लिए एक पूर्णांक है। अब एक उदाहरण देखना है।

चरण 6:

छवि
छवि

यह स्केच 0 और 255 के बीच यादृच्छिक संख्याएँ बनाएगा, उन्हें EEPROM में संग्रहीत करेगा, फिर उन्हें पुनः प्राप्त करेगा और सीरियल मॉनीटर पर प्रदर्शित करेगा। चर EEsize आपके EEPROM आकार की ऊपरी सीमा है, इसलिए (उदाहरण के लिए) यह Arduino Uno के लिए 1024 या मेगा के लिए 4096 होगा।

// Arduino आंतरिक EEPROM प्रदर्शन

#शामिल

इंट जेड; इंट ईईसाइज = १०२४; // आपके बोर्ड के EEPROM के बाइट्स में आकार

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); यादृच्छिक बीज (एनालॉगरेड (0)); } शून्य लूप () { Serial.println ("रैंडम नंबर लिखना…"); के लिए (int i = 0; i <EEsize; i++) {zz=random(255); EEPROM.लिखें (i, zz); } सीरियल.प्रिंट्लन (); के लिए (int a=0; a <EEsize; a++) {zz = EEPROM.read(a); सीरियल.प्रिंट ("ईईपीरोम स्थिति:"); सीरियल.प्रिंट (ए); सीरियल.प्रिंट ("इसमें शामिल है"); सीरियल.प्रिंट्लन (जेडजेड); देरी (25); } }

सीरियल मॉनिटर से आउटपुट दिखाई देगा, जैसा कि इमेज में दिखाया गया है।

तो आपके पास यह है, हमारे Arduino सिस्टम के साथ डेटा स्टोर करने का एक और उपयोगी तरीका। हालांकि सबसे रोमांचक ट्यूटोरियल नहीं है, यह निश्चित रूप से एक उपयोगी है।

यह पोस्ट आपके लिए pmdway.com द्वारा लाया गया है - निर्माताओं और इलेक्ट्रॉनिक्स के प्रति उत्साही लोगों के लिए, दुनिया भर में मुफ्त डिलीवरी के साथ।

सिफारिश की: