💾 ماژول کارت SD (microSD Card Module)

اسم انگلیسیmicroSD Card Module
در ووکوی (Wokwi)wokwi-microsd-card
دسته📦 ماژول‌ها
در شبیه‌ساز فارسیمود ساده (بدون کد) و مود آردوینو · رایگان

ماژول کارت SD (microSD Card Module) به آردوینو یک دفترچه‌ی ماندگار می‌دهد: عددهای سنسور را در فایل متنی یا CSV می‌نویسی و بعد کارت را در کامپیوتر می‌خوانی یا در اکسل نمودارش را می‌کشی. ارتباطش با آردوینو از راه گذرگاه SPI است، همان چهار سیمی که کارت‌خوان RFID و بعضی نمایشگرها هم استفاده می‌کنند. دیتالاگر دما، ثبت ساعت ورود و خروج و ذخیره‌ی تنظیمات برنامه کاربردهای اصلی‌اش هستند.

کارت SD در ووکوی (Wokwi)

ووکوی ماژول microSD را با شناسه‌ی wokwi-microsd-card دارد. اسم پایه‌هایش از دید خود کارت است: DI (ورودی داده‌ی کارت = MOSI آردوینو)، DO (خروجی داده‌ی کارت = MISO)، SCK، CS، و CD که «تشخیص کارت» است و برای این مثال لازم نیست. یک پتانسیومتر هم داده‌ی ما را می‌سازد:

{
  "version": 1,
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 100, "left": 0 },
    { "type": "wokwi-microsd-card", "id": "sd1", "top": -60, "left": 80 },
    { "type": "wokwi-potentiometer", "id": "pot1", "top": -60, "left": 260 }
  ],
  "connections": [
    [ "uno:10", "sd1:CS", "orange", [] ],
    [ "uno:11", "sd1:DI", "blue", [] ],
    [ "uno:12", "sd1:DO", "green", [] ],
    [ "uno:13", "sd1:SCK", "yellow", [] ],
    [ "uno:5V", "sd1:VCC", "red", [] ],
    [ "uno:GND.1", "sd1:GND", "black", [] ],
    [ "uno:5V", "pot1:VCC", "red", [] ],
    [ "uno:A0", "pot1:SIG", "purple", [] ],
    [ "uno:GND.1", "pot1:GND", "black", [] ]
  ]
}
پایه در ووکویوصل به
CSuno:10
DIuno:11 (MOSI)
DOuno:12 (MISO)
SCKuno:13
VCC / GND5V / GND
CDآزاد

در تینکرکد فارسی، باز کردن و خواندن مثال‌ها رایگان است؛ ماژول کارت SD جزو ماژول‌های حرفه‌ای است و اجرایش اشتراک Plus می‌خواهد. پروژه‌ی آماده: ثبت داده روی کارت SD.

سیم‌کشی با آردوینو

پایه‌ی ماژولوصل به
CSپین 10
MOSIپین 11
MISOپین 12
SCKپین 13
VCC5V (ماژول‌هایی که رگولاتور و مبدل سطح دارند)
GNDGND
پتانسیومتردو سر به 5V و GND، سر وسط به A0

روی اونو پایه‌های 11، 12 و 13 همان SPI سخت‌افزاری‌اند و قابل تغییر نیستند؛ فقط CS را می‌شود عوض کرد.

کد نمونه

// SD data logger: writes the potentiometer value to a CSV file every second,
// then prints the whole file back after 10 rows.
#include <SPI.h>
#include <SD.h>

const int CS_PIN = 10;
int rows = 0;

void setup() {
  Serial.begin(9600);
  if (!SD.begin(CS_PIN)) {
    Serial.println("SD init failed - check wiring and CS pin");
    while (true) {}                // stop here
  }
  File f = SD.open("data.csv", FILE_WRITE);
  if (f) {
    f.println("ms,pot");           // header row
    f.close();
  }
}

void loop() {
  if (rows < 10) {
    File f = SD.open("data.csv", FILE_WRITE);   // appends to the end
    if (f) {
      f.print(millis());
      f.print(",");
      f.println(analogRead(A0));
      f.close();                   // close = data really written
      rows++;
      Serial.print("row ");
      Serial.println(rows);
    }
    delay(1000);
  } else if (rows == 10) {
    File f = SD.open("data.csv");
    while (f && f.available()) Serial.write(f.read());
    if (f) f.close();
    rows++;                        // print the file only once
  }
}

اگر برنامه را دوباره اجرا کنی، ردیف‌های تازه به انتهای همان فایل اضافه می‌شوند؛ برای فایل تمیز، قبل از نوشتن سرستون با SD.remove("data.csv") نسخه‌ی قبلی را پاک کن.

چرا CSV؟ چون هر برنامه‌ی صفحه‌گسترده آن را مستقیم باز می‌کند: ستون اول زمان به میلی‌ثانیه و ستون دوم عدد سنسور، و با دو کلیک نمودار داری. اگر ثانیه‌ای یک ردیف می‌نویسی، باز و بسته کردن فایل در هر بار مشکلی ندارد؛ برای نوشتن خیلی تندتر، فایل را باز نگه دار و هر چند ثانیه یک بار flush() بزن. اگر کنار کارت SD ماژول SPI دیگری هم داری، MOSI، MISO و SCK مشترک‌اند و هر ماژول فقط یک پایه‌ی CS جدا می‌خواهد.

اشتباه‌های رایج

آموزش‌های مرتبط

سؤال‌های رایج

کارت SD برای آردوینو چه فرمتی باید داشته باشد؟

FAT16 یا FAT32. کارت‌های بزرگ‌تر از ۳۲ گیگابایت معمولاً exFAT فرمت شده‌اند و کتابخانه‌ی SD آن‌ها را نمی‌شناسد؛ کارت را FAT32 فرمت کن یا یک کارت کوچک‌تر بگذار.

چرا SD.begin شکست می‌خورد؟

رایج‌ترین علت‌ها: شماره‌ی CS در کد با سیم‌کشی یکی نیست، MISO و MOSI جابه‌جا شده‌اند، کارت فرمت درستی ندارد یا ماژول برق کافی نمی‌گیرد.

ماژول SD در تینکرکد فارسی رایگان است؟

باز کردن و خواندن مثال‌ها رایگان است؛ ماژول کارت SD جزو ماژول‌های حرفه‌ای است و اجرایش اشتراک Plus می‌خواهد. در ووکوی هم با شناسه‌ی wokwi-microsd-card هست.

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

آموزش‌هایی که از این قطعه استفاده می‌کنند

💡

۳۰ ایده پروژه اینترنت اشیا با ESP32، از مبتدی تا پیشرفته (با قطعه‌ها و نقطه‌ی شروع)

قطعه‌های دیگرِ ماژول‌ها

📱

ماژول بلوتوث HC-05

HC-05 Bluetooth Module

🪪

کارت‌خوان RFID (RC522)

RC522 RFID Reader

⏰

ماژول ساعت RTC (DS3231)

DS3231 Real-Time Clock Module

🧲

رله

Relay Module (5V)

همه‌ی ۱۰۵ قطعه ← · آموزش مدار

ماژول کارت SD را در شبیه‌ساز امتحان کن 🚀