رباتیک و هوافضا

آموزش خواندن و نوشتن اطلاعات در حافظه ی SD

خواندن و نوشتن اطلاعات در حافظه ی SD با آردوینو

به نام خدا

آموزش خواندن و نوشتن اطلاعات در حافظه ی SD

خواندن و نوشتن اطلاعات در حافظه ی SD با آردوینو

در این آموزش خواندن و نوشتن روی حافظه های SD با آردوینو را یاد خواهیم گرفت.

قطعات مورد نیاز خواندن و نوشتن اطلاعات در حافظه ی SD با آردوینو :

  • بورد آردوینو
  • کارت SD با فرمت FAT 16 یا FAT 32
  • سوکت کارت SD
  • مقاومت ۱۰ کیلو اهم
  • سه مقاومت ۳٫۳ کیلو اهمی
  • ۳ مقاومت ۲٫۲ کیلو اهمی
  • برد بورد
  • سیم برد بورد

شماتیک مدار:

شماتیک مدار را در عکس بالا مشاهده می کنید. همه زمین های مدار به یکدیگر متصل شده اند.

 

کارت SD از پین ۳٫۳ ولت آردوینو تغذیه می شود. در این مدار از سه مقسم ولتاژ استفاده شده است که مدار آنها شامل مقاومت های ۲٫۲ کیلو اهم و ۳٫۳ کیلو اهم می باشد. مقسم ولتاژ در این مدار برای تبدیل سیگنال ۵ ولت به ۳٫۳ ولت (ولتاژ کاری کارت های SD) در پایه های SCK , MOSI , SS استفاده شده است. آردوینو این سیگنال ها را به ترتیب از طریق پین های ۱۳ ، ۱۱ و ۱۰ به پایه های گفته شده کارت SD می فرستد. از آنجا که پایه MISO، پایه ارسال اطلاعات از کارت SD به آردوینو می باشد میتوان آن را مستقیما به آردونیو متصل کرد (زیرا ولتاژ این سیگنال ارسال شده ۳٫۳ می باشد).

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

اتصال مستقیم آردینو و کارت SD باعث صدمه دیدن کارت SD و خرابی آن می شود.

کد های آردوینو:

کدهای زیر برای خواندن و نوشتن اطلاعات روی  کارت SD متصل به آردوینو می باشد. نتایج را می توان در سریال مانیتور نرم افزار  Arduino IDE مشاهده نمود.

برای مثال در اینجا یک کارت SD با فرمت FAT16 و حافظه دو گیگ به آردوینو متصل شده و اطلاعات زیر در سریال مانیتور نمایش داده شده است:

خواندن و نوشتن اطلاعات در حافظه ی SD با آردوینو

شکل زیر فایلی که داخل کارت SD وجود داشت را نمایش می دهد:

خواندن و نوشتن اطلاعات در حافظه ی SD با آردوینو

 

دانلود کد برنامه :

 

دانلود فایل
// Read and write data to and from an SD card using Arduino

#include <SPI.h>        // Include SPI library (needed for the SD card)
#include <SD.h>         // Include SD library

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.print("Initializing SD card...");

  if (!SD.begin()) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);

  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }

  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop() {
  
}

 

بیشتر بخوانید...  تولید تن صدا با ضربه زدن به انگشتان دست با استفاده از آردوینو

دیدگاه‌ها (0)

*
*