پرش به محتوا

ذخیره رشته String در حافظه EEPROM آردوینو

در این مقاله با کتابخانه کاربردی StringEEPROM برای آردوینو آشنا میشوید. به سادگی میتوانید رشته های String را در حافظه EEPROM ذخیره کنید.
StringEEPROM

ذخیره رشته String در حافظه EEPROM آردوینو

ذخیره اطلاعات و متغییر ها در حافظه ماندگار میکرو کنترلر (EEPROM) همواره مهم و پر کاربرد است. در کامپایلر هایی مانند کدویژن به سادگی میتوانید یک متغییر را از نوع EEPROM تعریف کنید تا مقدار آن متغییر پس از خاموش شدن پردازنده از بین نرود و پس از شروع مجدد کار CPU بتوان از مقدار آن استفاده و یا حتی ویرایش کرد.
اما در کامپایلر هایی مانند آردوینو کمی پیچیده تر میتوان از حافظه ماندگار پردازنده استفاده کرد. همچنین توابع مربوطه فقط به یک بیت از حافظه EEPROM دسترسی دارند. به همین علت شما به سادگی نمیتوانید یک رشته از نوع String را در EEPROM ذخیره کنید.

برای دانلود کتابخانه StringEEPROM بر روی لینک زیر کلیک کنید.

ذخیره اطلاعات در EEPROM

ابتدا نحوه و اصول ذخیره دیتا در EEPROM را برسی میکنیم.

1.  کتابخانه EEPROM در ابتدای برنامه فراخوانی کنید.

				
					#include <EEPROM.h>
				
			

2. در حلقه setup باید مقدار فضای مورد نیاز از EEPROM را مشخص کنید.

 

				
					EEPROM.begin(مقدار بایت مورد نیاز );
				
			

3. برای خواندن بیت مورد نظر از  حافظه باید تابع زیر را فراخوانی کنید.

 

				
					EEPROM.read(Adress byte);
				
			

4. برای نوشتن دیتا در بیت مورد نظر از حافظه باید توابع زیر را فراخوانی کنید.

 

				
					EEPROM.write(Adress byte, data);
				
			

برای دانلود کتابخانه StringEEPROM بر روی لینک زیر کلیک کنید.

ذخیره رشته String در EEPROM

برای ذخیره رشته ابتدا آن را به نوع char تبدیل میکنیم. بافر نوع char این امکان را به ما میدهد که حروف نوشته را بخش بخش دریافت کنیم. حال هر کدام از حروف را در یک بیت از حافظه ذخیره میکنیم.

برای سادگی استفاده از این پروسه کتابخانه ای ایجاد کردیم تحت عنوان StringEEPROM.h که با استفاده از توابع آن میتوانید رشته های String را در EEPROM بنویسید یا بخوانید.

در حال حاضر این کتابخانه از نوشتن 2 رشته به صورت متوالی در EEPROM پشتیبانی میکند. هدف از قابلیت 2 رشته به صورت متوالی ، ذخیره SSID و PASSWORD در سیستم های تحت شبکه یا وای فای در ماژول های ESP است.

البته شما میتوانید در هر پروژه ای از این کتابخانه استفاده کنید و رشته String خود را به سادگی ذخیره کنید.

نکته: این نسخه از کتابخانه فعلا برای esp32 قابل استفاده هست، در ورژن های بعدی برد های دیگر هم اضافه خواهیم کرد.

توابع کتابخانه StringEEPROM.h

در ابتدا برنامه باید کتابخانه های EEPROM و StringEEPROM را فراخوانی کنید.

				
					#include <EEPROM.h>
#include <StringEEPROM.h>
				
			

پس از فراخوانی کتابخانه ها باید یک شئ از کلاس StringEEPROM تعریف کنید.

				
					StringEEPROM StringEEPROM;
				
			

در حلقه setup باید مقدار فضای مورد نیاز برای 2 رشته مورد نظر را در تابع زیر مقدار دهی کنید.

				
					StringEEPROM.begin(40);
				
			

برای نوشتن رشته در EEPROM تابع StringEEPROM.write و برای خواندن رشته تابع StringEEPROM.read را استفاده کنید.

در Adress String عدد 1 یا 2 قابل استفاده است ؛ که تایین کننده رشته اول یا دوم می باشد.

				
					StringEEPROM.write(String ,Adress String);
StringEEPROM.read(Adress String);
				
			

نمونه برنامه StringEEPROM

در کد زیر دو رشته دلخواه را در EEPROM ذخیره میکنیم و میخوانیم. مقدار خوانده شده بر روی سریال چاپ می شود.

				
					#include <EEPROM.h>
#include <StringEEPROM.h>

StringEEPROM StringEEPROM;

char example_string1[] = "IMAX-com.com";
char example_string2[] = "Milad";

void setup() {
StringEEPROM.begin(40);
StringEEPROM.debug(true);

Serial.begin(115200); // serial communication initialize
while (!Serial);

StringEEPROM.write(example_string1 ,1);  //Write string 1 to firs eeprom buffer
StringEEPROM.write(example_string2 ,2);  //Write string 2 to second eeprom buffer

String first = StringEEPROM.read(1);  //Read firs eeprom buffer
String second = StringEEPROM.read(2);  //Read second eeprom buffer

Serial.println("First: " + first);
Serial.println("Second: " + second);
}

void loop() {  

}

				
			

برای دانلود کتابخانه StringEEPROM بر روی لینک زیر کلیک کنید.

اشتراک گذاری این نوشته

دانشجوی رشته مکاترونیک صنعتی هستم و در زمینه اتوماسیون و توسعه صنعت فعالیت میکنم. سعی میکنم تجربیات و خورده دانشی که از الکترونیک دارم را با شما به اشتراک بگذارم.

شاید این مطالب براتون جذاب باشه!

2 دیدگاه دربارهٔ «ذخیره رشته String در حافظه EEPROM آردوینو»

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تماس با ما

عضویت

عضو سایت هستید؟ برای ورود کلیک کنید

ورود به حساب کاربری