💾 درس 98: ثبت داده روی کارت حافظه
دما و زمان را در فایل CSV بنویس و دوباره بخوان.
سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: SD، CSV، فایل، SPI
قدمهای این درس
- چرا؟ ایستگاه هواشناسی بیکامپیوتر
- قدم ۱ — مدار: SPI
- قدم ۲ — نوشتن و خواندن CSV
- اشتباه رایج: فراموش کردن close
- چالش: ساعت واقعی
نمونهای از کد این درس
// ثبت دما در فایل 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);
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓