🗂️ ماموریت ۱۰۰: ثبت دما روی کارت SD

کارت SD: CS→D10، MOSI→D11، MISO→D12، SCK→D13؛ DHT روی D2. هر ۲ ثانیه یک خط «زمان,دما,رطوبت» به data.csv اضافه کن و فایل را close کن.

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

هدف‌ها

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

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

جواب کامل

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

سیم‌کشی

  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) ⟷ dht-sensor (VCC)
  8. Arduino Uno (D2) ⟷ dht-sensor (DATA)
  9. dht-sensor (GND) ⟷ Arduino Uno (GND2)

کد

// SD data logger: temperature + humidity every 2 s into data.csv
#include <SPI.h>
#include <SD.h>
#include <DHT.h>

DHT dht(2, DHT22);
const int CS = 10;

void setup() {
  Serial.begin(9600);
  dht.begin();
  if (!SD.begin(CS)) {
    Serial.println("No SD card!");
    while (true) delay(1000);
  }
  File f = SD.open("data.csv", FILE_WRITE);
  f.println("seconds,temp,humidity");   // header row for a spreadsheet
  f.close();
}

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  File f = SD.open("data.csv", FILE_WRITE);
  if (f) {
    f.print(millis() / 1000);
    f.print(",");
    f.print(t);
    f.print(",");
    f.println(h);
    f.close();              // close = really saved on the card
    Serial.print("logged ");
    Serial.println(t);
  }
  delay(2000);
}

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

🐍

ماموریت ۹۹: بازی مار روی ماتریس

🥤

ماموریت ۹۸: دستگاه فروش خودکار

🛗

ماموریت ۹۷: آسانسور با ماشین حالت

🌞

ماموریت ۹۶: ردیاب خورشید

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