💾 درس 98: ثبت داده روی کارت حافظه

دما و زمان را در فایل CSV بنویس و دوباره بخوان.

سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: SD، CSV، فایل، SPI

قدم‌های این درس

  1. چرا؟ ایستگاه هواشناسی بی‌کامپیوتر
  2. قدم ۱ — مدار: SPI
  3. قدم ۲ — نوشتن و خواندن CSV
  4. اشتباه رایج: فراموش کردن close
  5. چالش: ساعت واقعی

نمونه‌ای از کد این درس

// ثبت دما در فایل CSV روی کارت حافظه، و خواندن دوباره‌اش
#include <SPI.h>
#include <SD.h>

const int CS = 10;
bool sdOk = false;
int rows = 0;

void setup() {
  Serial.begin(9600);
  sdOk = SD.begin(CS);
  if (!sdOk) { Serial.println("kart peyda nashod! sim-ha ra check kon"); return; }
  if (!SD.exists("data.csv")) {             // header only once
    File f = SD.open("data.csv", FILE_WRITE);
    f.println("seconds,celsius");
    f.close();
  }
  Serial.println("kart amade ast");
}

void loop() {
  if (!sdOk) return;
  float temp = analogRead(A0) * 5.0 / 1023.0 * 100.0;   // LM35

  File f = SD.open("data.csv", FILE_WRITE);   // append at the end
  if (f) {
    f.print(millis() / 1000.0);
    f.print(",");
    f.println(temp);
    f.close();                                // close = really saved
    rows++;
  }

  if (rows % 5 == 0) {                        // every 5 rows: read it back
    Serial.println("--- data.csv ---");
    File r = SD.open("data.csv");
    while (r.available()) Serial.write(r.read());
    r.close();
  }
  delay(2000);
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🐍

درس 97: بازی مار روی ماتریس LED

⚙️

درس 99: استپر نرم با AccelStepper