📈 ماموریت ۴۵: ثبت داده

هر چند ثانیه یه بار، مقدار سنسور رو با زمانش به‌صورت CSV چاپ کن.

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. Arduino Uno (VCC5) ⟷ SD Card Module (VCC)
  2. SD Card Module (GND) ⟷ Arduino Uno (GND1)
  3. Arduino Uno (D10) ⟷ SD Card Module (CS)
  4. Arduino Uno (D11) ⟷ SD Card Module (MOSI)
  5. SD Card Module (MISO) ⟷ Arduino Uno (D12)
  6. Arduino Uno (D13) ⟷ SD Card Module (SCK)
  7. Arduino Uno (VCC5) ⟷ Potentiometer (VCC)
  8. Potentiometer (GND) ⟷ Arduino Uno (GND2)
  9. Potentiometer (WIPER) ⟷ Arduino Uno (A0)

کد

// SD card data logger: save the knob every second, then read the file back.
// Select the SD module to see the files on the card.
#include <SPI.h>
#include <SD.h>

const int CS = 10;
int count = 0;

void setup() {
  Serial.begin(9600);
  if (!SD.begin(CS)) {
    Serial.println("SD card not found! Check the wiring.");
    while (true) delay(1000);
  }
  Serial.println("SD card ready.");
}

void loop() {
  int value = analogRead(A0);

  File logFile = SD.open("log.txt", FILE_WRITE);   // opens at the end of the file
  if (logFile) {
    logFile.print(millis() / 1000);
    logFile.print(",");
    logFile.println(value);
    logFile.close();                               // close = really saved
    Serial.print("saved: ");
    Serial.println(value);
  }

  count++;
  if (count % 5 == 0) {                            // every 5 lines, show the file
    Serial.println("--- log.txt ---");
    File f = SD.open("log.txt");
    while (f.available()) Serial.write(f.read());
    f.close();
  }
  delay(1000);
}

ماموریت‌های مشابه

⌨️

ماموریت ۴۴: فرمان از سریال

⏲️

ماموریت ۴۶: بازی سرعت واکنش

🪴

ماموریت ۴۳: آبیاری خودکار

🎲

ماموریت ۴۷: بازی سایمون

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها