آردوینو, پروژه آردوینو

راه اندازی ماژول کارت حافظه با آردوینو و ذخیره اطلاعات در مموری کارت

راه اندازی ماژول کارت حافظه با آردوینو یا ذخیره اطلاعات در کارت حافظه SD با آردوینو

ذخیره‌سازی اطلاعات یکی از کارهای مهم در پروژه‌های مختلف است که با توجه به حجم و نوع داده‌ها، روش‌های زیاد و متنوعی نیز برای انجام آن وجود دارد. در این بین، کارت‌های SD و microSD جزو پرکاربردترین ذخیره‌سازهای جهان به شمار می‌روند که در گوشی‌های هوشمند، لپ‌تاپ‌ها، تبلت‌ها و . . . قرار می‌گیرند. ما در این آموزش می‌دهیم شما را با نحوه راه اندازی ماژول کارت حافظه با آردوینو و یا ذخیره اطلاعات در کارت حافظه SD با آردوینو آشنا کنیم؛ پس با ما و بلاگ بهنام رباتیک همراه باشید.

فهرست مطالب

لوازم مورد نیاز برای پروژه راه اندازی ماژول کارت حافظه با آردوینو

ماژول SD و microSD چیست؟

ماژول‌های SD و microSD به شما اجازه می‌دهند تا با حافظه موجود در آنها ارتباط برقرار کرده و اطلاعات مدنظر را در آنها قرار داده و یا از آنها بخوانید. لازم به ذکر است که پروتکل ارتباطی این ماژول‌ها SPI می‌باشد.

برای استفاده از این ماژول‌ها در آردوینو، باید کتابخانه SD را نصب داشته باشید. خوشبختانه این کتابخانه به صورت پیش‌فرض در نرم‌افزار Arduino IDE نصب است.

نکته: این ماژول‌ها از کارت‌های حافظه با ظرفیت زیاد پشتیبانی نمی‌کنند. معمولاً حداکثر ظرفیت ماژول SD به 2 و حداکثر ظرفیت ماژول microSD به 16 گیگابایت می‌رسد.

آشنایی با پین‌های ماژول microSD

این ماژول شش پین دارد که عبارتند از:

  • VCC: پین منبع تغذیه 5 ولت
  • GND: پین اتصال به زمین
  • CS: پین انتخاب چیپ
  • MISO: پین خروجی SPI از ماژول کارت microSD
  • MOSI: پین ورودی SPI از ماژول کارت microSD
  • SCK: کلاک سریال

شما می‌توانید پین‌های این ماژول را در ادامه ببینید.

پین‌های ماژول microSD
پین‌های ماژول microSD

مهمترین دستورات کتابخانه ماژول SD

در جدول زیر می‌توانید توضیحات کوتاهی در مورد برخی دستورات موجود در کتابخانه SD ببینید.

دستور

توضیح

SD.begin(#sspin)

آغازگر کتابخانه SD. در اینجا باید پین متصل به SS را به عنوان تابع سلسله بیفزایید.

SD.exists(filename)

بررسی می‌کند که آیا یک فایل یا مسیر در کارت SD وجود دارد یا خیر.

SD.open(filepath, mode)

یک فایل موجود در کارت SD را در حالت خواندن یا نوشتن اجرا می‌کند. اگر بخش مربوط به حالت را خالی نگه دارید، فایل به صورت پیش‌فرض در حالت خواندن اجرا می‌شود. چنان‌چه فایلی برای نوشتن اجرا شد ولی وجود نداشت، یک فایل با همان ایجاد می‌شود

file.close()

فایل را می‌بندد و مطمئن می‌شود که داده‌های نوشته شده در آن به صورت فیزیکی در مموری کارت microSD ذخیره شده‌اند

SD.remove(filename)

حذف یک فایل از مموری کارت microSD

SD.mkdir(filename)

ایجاد مسیر در مموری کارت microSD

SD.rmdir(filename)

حذف یک مسیر از مموری کارت microSD

file.name()*

بازگرداندن نام فایل

file.print(data)

چاپ داده‌ها در فایل

file.println(data

چاپ داده‌ها به همراه بازگردان و یک خط جدید

file.read()

خواندن داده‌ها از فایل

file.available()

بررسی می‌کند که آیا بایت برای خواندن از فایل وجود دارد یا خیر.

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

نکته: ماژول استفاده شده در این مطلب آموزشی، ماژول microSD است اما شما می‌توانید از کدهای ارائه برای ماژول SD نیز بهره ببرید.

سیم‌کشی مدار پروژه راه اندازی ماژول کارت حافظه با آردوینو

بسته به نوع ماژول استفاده شده (microSD یا SD)، سیم‌کشی مدار این پروژه را با توجه به تصویر زیر انجام دهید.

سیم‌کشی مدار پروژه راه‌اندازی ماژول کارت حافظه با آردوینو
سیم‌کشی مدار پروژه راه‌اندازی ماژول کارت حافظه با آردوینو

روش دیگر نیز آن است که یک تکه یخ را داخل پلاستیک بگذارید تا مدار خیس نشود و سپس پلاستیک را به سنسور نزدیک کنید تا ببینید دما کاهش می‌یابد.

تست سنسور دمای LM35 با یخ
تست سنسور دمای LM35 با یخ

کدهای پروژه ذخیره اطلاعات در کارت حافظه SD با آردوینو

کدهای زیر را در نرم‌افزار Arduino IDE آپلود کنید تا روی مموری کارت microSD نوشته شوند.

				
					#include <SPI.h>
#include <SD.h>
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(10)) {
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("This is a test file :)");
myFile.println("testing 1, 2, 3.");
for (int i = 0; i < 20; i++) {
myFile.println(i);
}
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop() {
// nothing happens after setup
}

				
			

نتیجه اجرای کدهای داده شده به صورت زیر است:

نتیجه کدهای نوشتن داده در ماژول microSD
نتیجه کدهای نوشتن داده در ماژول microSD

کدهای زیر را در نرم‌افزار Arduino IDE آپلود کنید تا از مموری کارت microSD خوانده شوند.

				
					#include <SPI.h>
#include <SD.h>
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(10)) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
// 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() {
// nothing happens after setup
}

				
			

نتیجه اجرای کدهای داده شده به صورت زیر است:

نتیجه کدهای خواندن داده از ماژول microSD
نتیجه کدهای خواندن داده از ماژول microSD

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *