خواندن و نوشتن رشته (string) در EEPROM با آردوینو (arduino)

محتوا

برای نوشتن و خواندن یک رشته در eeprom با آردوینو فقط کافی است دو تابع زیر را قبل از void setup اضافه کنید.

void EEP_Write_String(byte part, String val){
  int start_addw = part * 32;
  int w_len = val.length();
  EEPROM.write(start_addw, w_len+1);
  int end_w = start_addw + w_len;
  byte len = 0;
   for (int i=start_addw+1;i < end_w+1;i++){
     EEPROM.write(i, int(val[len]));
    len++;
  }
  len = 0;
 }
String EEP_Read_String(byte part){
   int start_addr = part * 32;
   String str;
   int ch;
   int r_len = EEPROM.read(start_addr);
   int end_r = start_addr + r_len;=
   for (int i=start_addr+1;i < end_r;i++){
    ch = EEPROM.read(i);
    str += char(ch);
   }
   return str;
 }

با این توابع شما فضای حافظه eeprom رو به قسمت های 32 بایتی تقسیم می کنید که بایت اول مشخصه طول رشته می باشد. در نتیجه طول رشته 31 کاراکتر می تواند باشد که البته طول رشته را می توانید تغییر دهید و برای این کار فقط کافی است اعداد 32 رو در هر دو تابع به طور یکسان به عدد دلخواه خود تغییر دهید. البته توجه داشته باشید که اعداد را فقط در صورت لزوم تغییر دهید.

512 بایت تقسیم بر 32 مساوی 16 ، یعنی 16 متغیر را می توانید در حافظه eeprom ذخیره کنید.

به عنوان مثال

 EEP_Write_String(1, "test");

دستور بالا رشته ‘test’ رو در حافظه ۱ ذخیره می کنه.
و دستور پایین مقدار ذخیره شده در حافظه ۱ رو می خونه و به پورت سریال ارسال می کنه.

 Serial.println(EEP_Read_String(1));
3 2 votes
امتیازدهی به مقاله
بخش نظرات
مشترک شوید
Notify of
guest
9 نظرات
قدیمی ترین
جدیدترین بیشترین آرای
Inline Feedbacks
View all comments
محمد
محمد
8 years ago

با سلام
در هر دو تابع توی خط هفتم ارور میده و &lt رو نمیتونه بخونه

محمد
محمد
8 years ago

با تشکر
نحوه ی کار با این دو تابع چطوریه؟ یعنی برای نوشتن یا خوندن بعد از اضافه کردن این دو تابع باید از چ کدی استفاده کنیم؟
ممنون

miladtabrizy
miladtabrizy
7 years ago

redefinition of ‘void EEP_Write_String(byte, String)’
سلام این اررور میده

بخشایی
بخشایی
5 years ago

سلام و خدا قوت
این تابع رو میشه راهنمایی بفرمایید
که میشه به eeprom خارجی گسترشش داد؟
AT24CXXXX

سعید
2 years ago

سلام
میشه مثالی بزنید که چهکدی بنویسم تا 3 تا شماره تلفن 14 رقمی با مثبت اولش وارد کنم . هر چی مینویسم بعضی وقتا کار میکنه بعضی وقتا میپره . من عدد 32 رو هم به 16 تغییر دادم چون کل شماره با + میشه 14 رقم.
ممنون

9
0
Would love your thoughts, please comment.x
×
×

سبد خرید