📈 ماموریت ۴۵: ثبت داده
هر چند ثانیه یه بار، مقدار سنسور رو با زمانش بهصورت CSV چاپ کن.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ یه سنسور
- ☐ کد از millis استفاده کنه
- ☐ کد Serial.print داشته باشه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- ماژول کارت SD
- پتانسیومتر
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- 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) ⟷ Potentiometer (VCC)
- Potentiometer (GND) ⟷ Arduino Uno (GND2)
- 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);
}
ماموریتهای مشابه
⌨️
ماموریت ۴۴: فرمان از سریال
⏲️
ماموریت ۴۶: بازی سرعت واکنش
🪴
ماموریت ۴۳: آبیاری خودکار
🎲
ماموریت ۴۷: بازی سایمون
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها