در این پست به شما نشان می دهیم که چگونه از ماژول کارت حافظه با آردوینو برای خواندن و نوشتن فایل ها روی کارت SD استفاده کنید.

معرفی ماژول SD Card
ماژول کارت SD اکثرا برای پروژه هایی که نیاز به ثبت اطلاعات در زمان های طولانی و حجم زیاد دارند مفید است.
شما با استفاده از آردوینو به همراه کتابخانه SD فایلی را در کارت SD ایجاد کرده، داده ها را بنویسد و ذخیره کند.
ماژول های SD در مدل های مختلفی از تامین کنندگان مختلف وجود دارد، اما همه آنها به روشی مشابه با استفاده از پروتکل ارتباطی SPI کار می کنند. ماژول مورد استفاده در این آموزش همان است که در شکل زیر نشان داده شده است (نمای پشت و رو).

این ماژول با کارت میکرو SD کار می کند.

سیم کشی پین های ماژول SD
جدول زیر نحوه اتصال ماژول کارت SD را به آردوینو نشان می دهد

آماده سازی کارت SD
اولین مرحله هنگام استفاده از ماژول کارت SD با آردوینو، فرمت کردن کارت SD به صورت FAT16 یا FAT32 است. برای انجام این کار میتوانید دستورالعمل زیر را دنبال کنید.
1) برای فرمت کردن کارت SD، آن را در رایانه خود قرار دهید. به My Computer رفته و روی کارت SD کلیک راست کنید. همانطور که در شکل زیر نشان داده شده است، Format را انتخاب کنید.

2) یک پنجره جدید باز می شود. FAT32 را انتخاب کنید، Start را فشار دهید تا فرآیند فرمت شروع شود و دستورالعملهای روی صفحه را دنبال کنید.

تست ماژول کارت SD
کارت SD فرمت شده را در ماژول کارت SD قرار دهید.
همانطور که در شماتیک مدار زیر نشان داده شده است، ماژول کارت SD را به آردوینو وصل کنید یا قسمت جدول سیم کشی را در بخش قبل بررسی کنید.

کد – CardInfo
برای اطمینان از اینکه همه چیز به درستی سیم کشی شده است و کارت SD به درستی کار می کند، در پنجره Arduino IDE به File> Examples > SD > CardInfo بروید.
کد را روی برد آردوینو خود آپلود کنید. مطمئن شوید که برد و پورت COM مناسب را انتخاب کرده اید.
مانیتور سریال را با نرخ باود 9600 باز کنید و باید اطلاعات کارت SD خود را ببینید.
اگر همه چیز به درستی کار کند، پیام مشابه، پیام زیر را در مانیتور سریال خواهید دید.

خواندن و نوشتن روی کارت SD
کتابخانه SD توابع مفیدی را برای نوشتن و خواندن آسان از کارت SD فراهم می کند.
برای نوشتن و خواندن از روی کارت SD، ابتدا باید کتابخانه های SPI و SD را وارد کنید:
#include <SPI.h>
#include <SD.h>
همچنین باید ماژول کارت SD را در پین Chip Select (CS) مقداردهی کنید – در مورد ما، پین 4 پین cs میباشد.
SD.begin(4);
برای باز کردن یک فایل جدید در کارت SD، باید یک شی فایل ایجاد کنید که به فایل داده شما اشاره دارد. مثلا:
dataFile = SD.open("data.txt", FILE_WRITE);
اولین پارامتر این تابع نام فایل، data.txt است و آرگومان FILE_WRITE به شما امکان خواندن و نوشتن در فایل را می دهد.
این خط کد فایلی به نام data.txt در کارت SD شما ایجاد می کند. اگر فایل data.txt از قبل وجود داشته باشد، آردوینو به جای ایجاد فایل دیگری، فایل را باز می کند.
برای نوشتن داده در فایل باز شده فعلی، از:
dataFile.write(data);
که در آن dataFile شی فایلی است که قبلا ایجاد شده است و data همان چیزی است که می خواهید در فایل بنویسید.
همچنین می توانید از توابع print() یا println() برای چاپ داده ها در فایل استفاده کنید:
dataFile.print(data);
dataFile.println(data); // followed by a new line
برای خواندن داده های ذخیره شده در فایل خود:
dataFile.read();
شما فقط می توانید در یک فایل به طور همزمان بنویسید، بنابراین باید قبل از رفتن به فایل بعدی، یک فایل را ببندید. برای بستن فایل data.txt که به تازگی ایجاد کرده ایم:
SD.close("data.txt");
آرگومان این تابع فایلی است که می خواهید ببندید، در این مورد data.txt نام فایل ما میباشد.
برای یک برنامه کامل در مورد نحوه خواندن و نوشتن، در Arduino IDE خود به File> Examples> SD> ReadWrite بروید.
