آموزش آردوینو پروژه های آردوینو

پاک کردن حافظه ی EEPROM در آردوینو

نوشته شده توسط حسین فهیمی

میکروکنترلر روی برد آردوینو Arduino دارای ۵۱۲ بایت EEPROM است. حافظه ای که وقتی برد خاموش است، مقادیر در آن نگهداری می‌شود. (مانند یک دیسک سخت کوچک). این مثال چگونگی تنظیم همه‌ی آن بایت ها به ۰ و دادن مقدار اولیه برای نگهداری اطلاعات جدید با استفاده از تابع ()write از EEPROM را نشان می‌دهد. همانطور که می‌دانید حافظه EEPROM یک حافظه ماندگار می‌باشد که با قطع شدن یا ریست شدن میکرو اطلاعات پاک نمی‌شود. حال ممکن است این اطلاعات ذخیره شده در حافظه EEPROM در برنامه‌های شما تداخل ایجاد کند. به عنوان مثال ممکن است در فلایت کنترل مولتی‌روتر با تغییر در سرعت اسپید کنترل‌ها و آپلود آن در برد تغییرات اعمال نشود که در این مواقع کافی است با این پاک کردن این حافظه به عملکرد دستگاه خود بهبود ببخشید.

 

arduino-uno-r3

 

 

سخت افزار مورد نیاز :

کد زیر از حلقه ()for در چرخه کامل همه ۱۲ بایت از حافظه EEPROM استفاده می کند و در هر کدام به ۰ تنظیم می کند. از آنجا که این نیاز  تنها یک بار اتفاق می افتد ، وقتی که طرح شروع می شود بخش عمده ای از این کد در تابع ()setup قرار می گیرد.

حالا حافظه ی EEPROM شما خالی هست و میتوانید برنامه های خود را بدون هیچ مشکلی روی برد آردوینو آپلود کنید….

Source :

آزمایشگاه تخصصی انشجو کیت

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

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۵ دیدگاه

  • اینکارو میشه برای ماژول esp هم انجام داد؟؟؟؟ماژول esp هم انجام داد ؟؟ماژول esp رو چطوری باید erase کرد ؟؟

  • زمان آپلود کردن erorre زیر رو نمایش می دهد هیچ برنامه ایی آپلود نمیشه.
    ممکنه برد مشکل پیدا کرده باشه ؟
    روی چند کامپیوتر دیگه هم امتحان کردم ولی باز هم …

    avrdude: verification error, first mismatch at byte 0x0000
    ۰x62 != 0x0c
    avrdude: verification error; content mismatch
    avrdude: verification error; content mismatch

    • با سلام
      ضمن تشکر از توجه شما، این ارور مربوط به پروتکل خواندن و نوشتن STK500 می‌باشد. رفع عیب این حالت کمی زمان بر و نیاز به دقت و حوصله کافی شما دارد. اگر تمایل دارید جهت دریافت جزئیات بیشتر لطفا دستور “upload.verbose=true” را در منو File > Preferences اضافه کنید. مجددا آپلود را انجام دهید. ارورهای دریافتی را از همین طریق اعلام کنید. در غیر این صورت پیشنهاد من تعویض برد است.

  • اگر بخواهیم اطلاعات مربوط به دما سنج را در هر یک ساعت یک بار روی روی eeprom نگه داریم و در زمان لازم از این دیتا ها استفاده کنیم از چه ک هایی برای نوشتن و خواندن باید استفاده کنیم؟

    آیا برای ماژول ساعت ds1307 هم امکان eeprom دارد.؟

    • با سلام
      ضمن تشکر از توجه شما، برای این منظور باید از کتابخانه تایمر و eeprom آردوینو استفاده کنید. سپس تغییرات و شروط لازم را در کدها اعمال کنید. در مورد سوال دوم هم بله میتوانید استفاده کنید.