विषयसूची:
वीडियो: आपके Arduino का इनबिल्ट EEPROM: 6 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
इस लेख में हम अपने 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 द्वारा लाया गया है - निर्माताओं और इलेक्ट्रॉनिक्स के प्रति उत्साही लोगों के लिए, दुनिया भर में मुफ्त डिलीवरी के साथ।
सिफारिश की:
आपके Arduino प्रोजेक्ट के लिए मोबाइल फ़ोन की बैटरी का पुन: उपयोग: 3 चरण
आपके Arduino प्रोजेक्ट के लिए मोबाइल फोन की बैटरी का पुन: उपयोग करना: इस तरह मैंने एक arduino प्रोजेक्ट को पावर देने के लिए एक पुराने मोबाइल फोन की बैटरी को रिसाइकल किया। यह विशेष प्रकार का 2000mAh का Nokia BLY4W है। हालाँकि उपयोग की जाने वाली तकनीकें अधिकांश फ़ोन बैटरियों में सामान्य हैं। यह बैटरी अचानक 0 वी दिखाते हुए मर गई
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
ESP32 ब्लूटूथ ट्यूटोरियल - ESP32 के इनबिल्ट ब्लूटूथ का उपयोग कैसे करें: 5 कदम
ESP32 ब्लूटूथ ट्यूटोरियल | ESP32 के इनबिल्ट ब्लूटूथ का उपयोग कैसे करें: नमस्कार दोस्तों चूंकि ESP32 बोर्ड वाईफाई और amp के साथ आता है; ब्लूटूथ दोनों लेकिन हमारे ज्यादातर प्रोजेक्ट्स के लिए हम आमतौर पर केवल वाईफाई का उपयोग करते हैं, हम ब्लूटूथ का उपयोग नहीं करते हैं। इसलिए इस निर्देश में मैं दिखाऊंगा कि ESP32 के ब्लूटूथ का उपयोग करना कितना आसान है & आपकी मूल परियोजनाओं के लिए
आपके Arduino के साथ प्रोग्रामिंग चिप्स - AVR ISP कवरिंग ATTiny85, ATTiny2313 और ATMega328: 3 चरण
आपके Arduino के साथ प्रोग्रामिंग चिप्स - AVR ISP कवरिंग ATTiny85, ATTiny2313 और ATMega328: मैंने इसे कई साल पहले के मसौदे के रूप में पाया। यह अभी भी मेरे लिए कम से कम उपयोगी है इसलिए मैं इसे प्रकाशित करने जा रहा हूँ! यह निर्देश 'नेट और' nstructables के आसपास से एकत्र किए गए ज्ञान का एक पूलिंग है। इसमें AVR माइक्रोको की प्रोग्रामिंग शामिल है
इनबिल्ट पावरबैंक के साथ वाईफाई जैमर: 12 कदम
इनबिल्ट पावरबैंक के साथ वाईफाई जैमर: हेलो फ्रेंड, इस वीडियो में मैं आपको बताऊंगा कि आप इनबिल्ट पावर बैंक के साथ पोर्टेबल वाईफाई जैमर कैसे बना सकते हैं। जिसका इस्तेमाल आपके मोबाइल को चार्ज करने और आपके वाईफाई जैमर को पावर देने के लिए किया जा सकता है। :: चेतावनी :: यह है किसी के वाईफाई नेटवर्क को जाम करना अवैध है। मैं कर रहा हूँ