🗂️ ماموریت ۱۰۰: ثبت دما روی کارت SD
کارت SD: CS→D10، MOSI→D11، MISO→D12، SCK→D13؛ DHT روی D2. هر ۲ ثانیه یک خط «زمان,دما,رطوبت» به data.csv اضافه کن و فایل را close کن.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ یه ماژول کارت SD
- ☐ یه سنسور DHT
- ☐ کارت راهاندازی بشه
- ☐ فایل برای نوشتن باز بشه
- ☐ فایل بسته بشه تا ذخیره بشه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- ماژول کارت SD
- dht-sensor
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- Arduino Uno (VCC5) ⟷ SD Card Module (VCC)
- SD Card Module (GND) ⟷ Arduino Uno (GND1)
- Arduino Uno (D10) ⟷ SD Card Module (CS)
- Arduino Uno (D11) ⟷ SD Card Module (MOSI)
- SD Card Module (MISO) ⟷ Arduino Uno (D12)
- Arduino Uno (D13) ⟷ SD Card Module (SCK)
- Arduino Uno (VCC5) ⟷ dht-sensor (VCC)
- Arduino Uno (D2) ⟷ dht-sensor (DATA)
- 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);
}
ماموریتهای مشابه
🐍
ماموریت ۹۹: بازی مار روی ماتریس
🥤
ماموریت ۹۸: دستگاه فروش خودکار
🛗
ماموریت ۹۷: آسانسور با ماشین حالت
🌞
ماموریت ۹۶: ردیاب خورشید
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها