یک میکروکنترلر ممکن است نیاز داشته باشد دادههای خود مانند مقدار حسگر، یا تعداد یا دادههای تصویری خاص را برای مدت طولانی ذخیره کند. رایج ترین نوع حافظه مورد استفاده در سیستم های مبتنی بر میکروکنترلر EEPROM است. EEPROM مخفف Electrically Erasable Programmable Read Only Memory است که نوعی حافظه فقط خواندنی (ROM) است که میتوان آن را با برنامهنویسی الکتریکی نوشت و پاک کرد و از این رو به این نام میگویند. پس از برنامه ریزی، داده ها برای مدت طولانی در حافظه باقی می مانند حتی اگر برق در دسترس نباشد. حافظه EEPROM به طور گسترده ای در سیستم های میکروکنترلر استفاده می شود که در آن برخی از داده های خاص باید هر بار که سیستم روشن می شود حفظ شود و قبل از خاموش شدن سیستم، داده های خاصی ذخیره شود.
چندین تراشه حافظه EEPROM در دسترس هستند که می توانند با کمک پروتکل های ارتباطی سریال، در یک سیستم مبتنی بر میکروکنترلر متصل شوند. اکثر میکروکنترلرها همچنین دارای EEPROM داخلی با اندازه کوچک هستند که می تواند در برنامه های کوچک استفاده شود و از این رو نیاز به تراشه حافظه خارجی، مدار و پیچیدگی کد را می توان اجتناب کرد.
پروتکل های ارتباطی سریال را می توان دوباره با آن نوع میکروکنترلرها برای اتصال EEPROM داخلی با دستگاه های دیگر یا با پورت سریال رایانه شخصی استفاده کرد.
اندازه داده هایی که می توان در EEPROM داخلی یک میکروکنترلر ذخیره کرد معمولاً به چند کیلوبایت محدود می شود. از این رو از آنها برای ذخیره مقادیر سنسور، شمارش یا گاهی اوقات متنی مانند داده های GPS و غیره استفاده می شود. این پروژه خاص نحوه اتصال EEPROM داخلی برد آردوینو را به پورت سریال رایانه شخصی و ذخیره متنی در آن نشان می دهد که می تواند حتی پس از خاموش شدن و روشن شدن مجدد آردوینو دوباره خوانده شود.
اندازه حافظه EEPROM موجود در برد آردوینو از یک نوع برد به دیگری متفاوت است. برد آردوینو حول یک میکروکنترلر AVR ساخته شده است که با بوت لودر آردوینو سوزانده شده است و تمام مدارات لازم را برای عملکرد میکروکنترلر فراهم می کند. برد آردوینو مورد استفاده در این پروژه، برد آردوینو پرو مینی است که دارای میکروکنترلر ATMEGA328 با EEPROM داخلی با اندازه 1 کیلوبایت است. برد pro-mini همچنین یک مجموعه از پین های Tx و Rx است که می تواند برای اتصال برد با خطوط ارتباطی سریال استفاده شود. در این پروژه، برد pro-mini با استفاده از Arduino IDE نسخه 1.0.3 دانلود شده برای ویندوز برنامه ریزی شده است.
تصویر برد آردوینو پرو مینی و آردوینو IDE در زیر نشان داده شده است.
از آنجایی که برد arduino pro-mini مداری برای اتصال آن با پورت سریال یا پورت USB رایانه شخصی ندارد، برای اتصال آن به رایانه شخصی به یک برد تبدیل USB به TTL خارجی نیاز است. این سخت افزار به برنامه نویسی برد آردوینو کمک می کند و همچنین به ارتباط سریال با کامپیوتر از طریق پورت USB کامپیوتر کمک می کند.
فرض بر این است که خواننده پروژه نحوه شروع کار با آردوینو را طی کرده و تمام مواردی که در آن بحث شده است را انجام داده است.
Arduno IDE برای شروع بسیار آسان است و دارای کتابخانه ها و عملکردهای زیادی برای هر کار ساده و پیچیده است. Arduino IDE همچنین دارای کتابخانه ای به نام <EEPROM.h> است که عملکردهایی برای دسترسی به EEPROM داخلی میکروکنترلر برد آردوینو ارائه می دهد. کد نوشته شده برای این پروژه همچنین از چند توابع از <EEPROM.h> برای خواندن و نوشتن EEPROM داخلی استفاده می کند. توابع عبارتند از EEPROM.write() و EEPROM.read() و جزئیات آن توابع قبلاً در پروژه های قبلی در مورد نحوه خواندن و نوشتن EEPROM آردوینو ، نحوه تست EEPROM آردوینو و نحوه انجام بحث شده است. یک مقدار سنسور را در EEPROM آردوینو ذخیره کنید .
Arduino IDE همچنین برخی از عملکردهای داخلی را ارائه می دهد که به فرآیند ارتباط سریال کمک می کند. تابعی وجود دارد که به مقدار دهی اولیه پورت ارتباط سریال با نرخ باود خاص کمک می کند و عملکردهایی برای ارسال داده ها به پورت سریال و خواندن داده ها از پورت سریال وجود دارد. توابع استفاده شده در این پروژه عبارتند از Serial.begin()، Serial.print()،Serial.println()، Serial.available()،Serial.read() و Serial.write(). جزئیات این توابع و عملکردهای مشابه برای ارتباط سریال قبلاً در پروژه های قبلی در مورد نحوه برقراری ارتباط سریال با آردوینو ، نحوه ارسال و دریافت داده های سریال با استفاده از آردوینو ، نحوه انجام اشکال زدایی سریال با آردوینو بحث شده است .
این پروژه همچنین با کمک توابع از کتابخانه <LiquidCrystal.h> مقداری متن را بر روی LCD نمایش می دهد. عملکردهای مهم ارائه شده توسط کتابخانه <LiquidCrystal.h> قبلاً مورد استفاده قرار گرفته و در پروژه های قبلی در مورد نحوه اتصال LCD ، نحوه نمایش مقدار سنسور در LCD ، نحوه اتصال LCD به رایانه شخصی و نحوه ایجاد یک LCD اسکرول توضیح داده شده است. نمایش .
در این پروژه یک LED به پین شماره 6 برد آردوینو متصل می شود که هدف آن نشان دادن هر بایت داده ای است که با یک بار چشمک زدن نوشته شده و همچنین پس از اتمام حافظه EEPROM به طور مداوم چشمک می زند. LED با استفاده از توابع داخلی Arduino IDE یعنی pinMode()،digitalWrite() و delay() کنترل می شود که در پروژه های قبلی در مورد نحوه شروع کار با آردوینو، نحوه استفاده از ورودی و خروجی دیجیتال بحث شده است. از آردوینو
کد