विषयसूची:

Arduino ड्यू में 24LC256 EEPROM जोड़ना: 3 चरण
Arduino ड्यू में 24LC256 EEPROM जोड़ना: 3 चरण

वीडियो: Arduino ड्यू में 24LC256 EEPROM जोड़ना: 3 चरण

वीडियो: Arduino ड्यू में 24LC256 EEPROM जोड़ना: 3 चरण
वीडियो: Arduino EEPROM - 24C04 | 24C08 | 24C16 | 24C32 | 24C64 (No Libraries) 2024, नवंबर
Anonim
Arduino ड्यू में 24LC256 EEPROM जोड़ना
Arduino ड्यू में 24LC256 EEPROM जोड़ना

Arduino के कारण एक eeprom का अभाव है। यह निर्देशयोग्य एक जोड़ता है और आपको गैर-वाष्पशील मेमोरी में मूल्यों को संग्रहीत करने की अनुमति देता है जो एक arduino फर्मवेयर अपडेट से बचेगा।

चरण 1: ब्रेडबोर्डिंग

ब्रेडबोर्डिंग
ब्रेडबोर्डिंग

यहां वास्तव में कुछ अच्छे निर्देश दिए गए हैं: https://www.hobbytronics.co.uk/arduino-external-eepromमैंने अभी उनका अनुसरण किया है। फोटो में ब्रेडबोर्ड सर्किट दिखाया गया है। पिन 1 से 4 और पिन 7 ग्राउंडेड हैं। पिन 8 देय बोर्ड पर 3.3V आपूर्ति से जुड़ा है। देय बोर्ड पर i2c एसडीए (डेटा) और एससीएल (घड़ी) पिन से जुड़े पीले (पिन 6) और सफेद (पिन 5) तार (संख्या 21 और 20)

चरण 2: कोड समय।

कोड समय।
कोड समय।

यहां कोड के कुछ अंश दिए गए हैं जिनका उपयोग मैं अपने रेखाचित्रों में करता हूं। सबसे पहले, अपने स्केच के शीर्ष के पास कहीं वायर लाइब्रेरी हेडर शामिल करें: /* सेटिंग्स को बचाने के लिए 24LC256 EEPROM का उपयोग करें */ #include फिर EEPROM से बाइट्स पढ़ने और लिखने के लिए कुछ फ़ंक्शन जोड़ें (मुझे केवल व्यक्तिगत बाइट्स की परवाह है लेकिन एक है चिप में भी पेज राइट फीचर)। ध्यान दें कि 0x50 की एक मैक्रो परिभाषा है.. यह i2c बस पर चिप का पता है (आप एक i2c बस पर एक से अधिक i2c चीज़ों को कनेक्ट कर सकते हैं और पता बदलकर आप किससे बात करना चाहते हैं) का चयन कर सकते हैं। /* ये दो कार्य हमें 24LC256 EEPROM चिप को लिखने में मदद करते हैं */ # परिभाषित EEPROM_ADDR 0x50 शून्य EEPROM_write(unsigned int addr, byte data) { int rdata = data; Wire.beginTransmission (EEPROM_ADDR); Wire.write((int)(addr >> 8)); // MSB वायर.राइट ((int) (addr और 0xFF)); // एलएसबी वायर। राइट (rdata); वायर.एंडट्रांसमिशन (); // सीरियल.प्रिंट ("ईईपीरोम लिखें: एडीआर:"); // सीरियल.प्रिंट (एडीआर); // सीरियल.प्रिंट (""); // सीरियल.प्रिंट्लन (डेटा); देरी(५); } बाइट EEPROM_read (अहस्ताक्षरित int addr) {बाइट डेटा = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write((int)(addr >> 8)); // MSB वायर.राइट ((int) (addr और 0xFF)); // एलएसबी वायर.एंडट्रांसमिशन (); Wire.requestFrom (EEPROM_ADDR, 1); अगर (वायर.उपलब्ध ()) डेटा = वायर.रीड (); // सीरियल.प्रिंट ("ईईपीरोम पढ़ें: एडीआर:"); // सीरियल.प्रिंट (एडीआर); // सीरियल.प्रिंट (""); // सीरियल.प्रिंट्लन (डेटा); देरी(५); डेटा वापस करें; } अगर आप कुछ डिबग आउटपुट देखना चाहते हैं तो आप Serial.print(…) लाइनों को अनकम्मेंट कर सकते हैं। Arduinos setup() फ़ंक्शन में आप वायर लाइब्रेरी शुरू करते हैं और प्रारंभिक मानों में पढ़ सकते हैं। यहां मैंने दो बाइट्स (झंडे और मैक्स_सीसी), दो शब्द (लीन_मिन और लीन_मैक्स) और शब्दों की एक सरणी sd_max [3] में पढ़ा: // EEPROM वायर में सहेजे गए मान पढ़ें। शुरू (); झंडे = EEPROM_read (0); max_cc=EEPROM_read(1); लीन_मिन = शब्द (ईईपीरोम_रीड (3), ईईपीरोम_रीड (2)); लीन_मैक्स = शब्द (EEPROM_read(5), EEPROM_read(4)); for(int j=0;j<3;j) { sd_max[j]=word(EEPROM_read(7 j*2), EEPROM_read(6 j*2)); } यहां कुछ कोड दिया गया है जो उन्हें EEPROM में लिखता है: EEPROM_write(0, flags); EEPROM_write(1, max_cc); EEPROM_write(2, LowByte(lean_min)); EEPROM_write(3, HighByte(lean_min)); EEPROM_write(4, LowByte(lean_max)); EEPROM_write(5, HighByte(lean_max)); for(int j=0;j<3;j) { EEPROM_write(6 j*2, LowByte(sd_max[j])); EEPROM_write(7 j*2, highByte(sd_max[j])); } इसके बारे में सच में।

चरण 3: इसे तार दें

वायर इट अप
वायर इट अप

एक बाड़े और किए गए कार्यों में पेंच करने के लिए इसे किसी बरामदे पर तार दें।

सिफारिश की: