نمایش نتایج: از 1 به 2 از 2

موضوع: آموزش استفاده از ایپرام داخلی آردوینو

  1. #1
    Senior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    153

    آموزش استفاده از ایپرام داخلی آردوینو

    گاهی نیاز داریم که اطلاعاتی رو در میکرو ذخیره کنیم که حتی بعد از قطع منبع تغذیه میکرو ، پایدار بمونه یا نیاز داریم که با استفاده از سنسورها یا صفحه کلید ، اطلاعاتی رو بدون پروگرامر و کامپیوتر

    وارد کنیم یا تغییر بدیم . برای این کار میتونیم از حافظه ایپرام داخلی خود میکرو استفاده کنیم . در میکروی اتمگا 328 که در مدل آردوینو uno استفاده شده ، مقدار 1 کیلوبایت حافظه ایپرام در نظر

    گرفته شده . در میکروهای دیگه میتونید به دیتاشیت میکرو مراجعه کرده و از میزان حافظه ایپرام میکرو مطلع بشید .

    ممکنه برای بعضی از دوستان این سئوال به وجود بیاد ، چرا باید از ایپرام داخلی میکرو استفاده کنیم ، وقتی به راحتی میتونیم از حافظه خارجی با ظرفیت خیلی بیشتر استفاده کنیم ؟!!!

    جواب این سئوال فقط به خاطر امنیت بیشتر هستش . چون شخص ثالث به راحتی میتونه ایپرام خارجی ما رو برداره و اطلاعاتشو دامپ کنه اما حافظه داخلی داخل میکرو هستش و شخص

    به راحتی قادر به دامپ اطلاعات نخواهد بود .

    برای کار با حافظه داخلی باید از کتابخانه EEPRAM استفاده کنیم برای این کار باید این کتابخانه رو داخل برنامه قرار بدیم :

    کد:
    #include <EEPROM.h>
    کار با ایپرام داخلی آسونتر از اون چیزیه که فکرشو میکنید . من برای مثال یه کد قرار میدم که ابتدا در یه متغییر از جنس کاراکتر ، یه شماره تلفن قرار میدم ، در تابع ستاپ اطلاعات رو روی

    ایپرام مینویسم و در تابع لوپ اون رو میخونم و از طریق سریال مانیتور چاپش میکنم . کد زیر رو ببینید :

    کد:
    #include <EEPROM.h>
    
    
    char val[] = {"4222068"};
    
    
    void setup(){
    
    
        Serial.begin(9600);
    
    
        for (byte i = 0; i < (sizeof(val)-1); i++) {
    
    
            EEPROM.write(i, val[i]);
    
    
        }
    
    
    
    }
    void loop() {
    
    
        for (byte k = 0; k < (sizeof(val)-1); k++) {
    
    
            char ss = EEPROM.read(k);
    
    
            Serial.print(ss);
    
    
        }
    
    
        Serial.print("\n");
    
    
        delay(2000);
    
    
    }
    تنها نکته قابل اشاره در این کد استفاده از تابع sizeof هستش که کارش شمارش مقدار آرایه هستش .

    کتابخانه قدرتمند ایپرام این قابلیت رو داره که حجم زیادی از اطلاعات رو در یک پروسه داخل ایپرام بنویسیم . فرض کنید میخوایم رشته ای از اطلاعات رو بگیریم و داخل ایپرام بریزیم .

    برای این کار از تابع ()put استفاده میکنیم . برای دسترسی به داده ها هم از تابع ()get استفاده میکنیم .

    مثال زیر رو ببینید :

    کد:
    #include "EEPROM.h"
    
    
    
    
    typedef struct {
    
        char name1[10] ;
    
        char name2[10] ;
    
        char name3[10] ;
    
    }melon;
    
    
    
    
    melon water;
    
    
    
    
    void setup() {
    
        Serial.begin(9600);
    
        char myName1[10] = "Ahmad";
    
        strcpy(water.name1, myName1);
    
        char myName2[10] = "Ali";
    
        strcpy(water.name2, myName2);
    
        char myName3[10] = "Meri";
    
        strcpy(water.name3, myName3);
    
        EEPROM.put(0, water);
    
    }
    
    void loop() {
    
        Serial.println("Extract Var from eeprom");
    
        EEPROM.get(0, water);
    
        Serial.print("Var 1 = ");
    
        Serial.println(water.name1);
    
        delay(2000);
    
        Serial.print("Var 2 = ");
    
        Serial.println(water.name2);
    
        delay(2000);
    
        Serial.print("Var 3 = ");
    
        Serial.println(water.name3);
    
        delay(2000);
    در مثال بالا ما با استفاده از کد استراکچر ، ۳ اسم ساختیم ، در فانکشن ستاپ ، اسمها رو با استفاده از تابع ()put به ایپرام دادیم و در فانکشن loop ، با استفاده از تابع ()get ، اسمها

    رو از ایپرام استخراج و در سریال مانیتور نمایش دادیم .

    تابع پوت و گت ۲ تا مقدار میگیرن که اولی آدرس ایپرام و دومی شیئ که تمایل داریم ذخیره بشه .

    منبع آموزش
    ویرایش توسط Ahmad110 : 08-24-2017 در ساعت 01:20 PM

  2. #2
    Junior Member
    تاریخ عضویت
    Jan 2018
    نوشته ها
    1
    برای آموزش همراه با فیلم و عکس می توانید روی لینک زیر کلیک کنید.
    آموزش استفاده از ایپرام داخلی آردوینو

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO