תוכן עניינים:

הוספת EEPROM 24LC256 ל- Arduino Due: 3 שלבים
הוספת EEPROM 24LC256 ל- Arduino Due: 3 שלבים

וִידֵאוֹ: הוספת EEPROM 24LC256 ל- Arduino Due: 3 שלבים

וִידֵאוֹ: הוספת EEPROM 24LC256 ל- Arduino Due: 3 שלבים
וִידֵאוֹ: ST24C08 EEPROM and Arduino 2024, נוֹבֶמבֶּר
Anonim
הוספת EEPROM 24LC256 ל- Arduino Due
הוספת EEPROM 24LC256 ל- Arduino Due

בשל arduino חסר אפרום. מדריך זה מוסיף אחד ומאפשר לך לאחסן ערכים בזיכרון לא נדיף שישרוד עדכון קושחה של ארדואינו.

שלב 1: לוח לחם

לוח לחם
לוח לחם

יש כאן כמה הוראות ממש טובות: https://www.hobbytronics.co.uk/arduino-external-eeprom פשוט עקבתי אחריהן. התמונה מציגה את המעגל הלוח. סיכות 1 עד 4 וסיכה 7 מקורקעות. סיכה 8 מחוברת לאספקת 3.3V בלוח המתאים. החוטים הצהובים (סיכה 6) והלבן (סיכה 5) המחוברים לסיכות i2c SDA (נתונים) ו- SCL (שעון) בלוח המתאים (ממוספר 21 ו -20).

שלב 2: זמן קוד

זמן קוד
זמן קוד

להלן כמה קטעי קוד בהם אני משתמש במערכונים שלי. ראשית, כלול את כותרות ספריית Wire איפשהו ליד החלק העליון של הסקיצה שלך: / * השתמש ב- 24LC256 EEPROM כדי לשמור הגדרות * / #include ואז הוסף כמה פונקציות לקריאה וכתיבה של בתים מה- EEPROM (אכפת לי מבייט בודד אך יש תכונת כתיבת עמודים גם בשבב). שים לב שיש הגדרה מאקרו של 0x50.. זוהי כתובת השבב באוטובוס i2c (אתה יכול לחבר יותר מדפוסי i2c באוטובוס i2c ולבחור עם מי אתה רוצה לדבר על ידי שינוי הכתובת). / * שתי הפונקציות הללו עוזרות לנו לכתוב לשבב ELCP 246 EEPROM */ #define EEPROM_ADDR 0x50 חלל EEPROM_write (int add intr, נתוני בתים) {int rdata = data; שידור Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.write (rdata); Wire.endTransmission (); //Serial.print("EEPROM כתוב: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); עיכוב (5); } בתים EEPROM_read (int add intr) {byte data = 0xFF; שידור Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); אם (Wire.available ()) נתונים = Wire.read (); //Serial.print("EEPROM read: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); עיכוב (5); החזרת נתונים; } תוכל לבטל את התגובה של שורות Serial.print (…) אם ברצונך לראות פלט באגים כלשהו. בפונקציית ההתקנה () של arduinos אתה מפעיל את ספריית החוט ויכול לקרוא בערכים ראשוניים. כאן קראתי בשני בתים (דגלים ו- max_cc), שתי מילים (lean_min ו- lean_max) ומערך מילים sd_max [3]: // קרא ערכים השמורים ב- EEPROM Wire.begin (); דגלים = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = word (EEPROM_read (3), EEPROM_read (2)); lean_max = word (EEPROM_read (5), EEPROM_read (4)); עבור (int j = 0; j <3; j) {sd_max [j] = word (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } להלן פיסת הקוד שכותבת אותם ב- EEPROM: EEPROM_write (0, דגלים); 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: חיבור זה

לחבר את זה
לחבר את זה

העבירו אותו לאיזה veroboard כדי להתברג במארז והעבודות שנעשו.

מוּמלָץ: