สร้างไฟล์ชั่วคราว

Arduino:
สร้างไฟล์ชั่วคราว

วิธีการ:

Arduino มักจะทำงานร่วมกับไมโครคอนโทรลเลอร์ที่ไม่มีไฟล์ระบบแบบดั้งเดิม—ดังนั้น “ไฟล์” จึงไม่ถูกจัดการในลักษณะเดียวกันกับที่เป็นอยู่ในพีซี แทนที่จะเป็นเช่นนั้น, เราใช้ EEPROM (หน่วยความจำขนาดเล็กที่ยังคงอยู่ผ่านการรีเซ็ต) หรือการ์ด SD ร่วมกับชิลด์ ต่อไปนี้เป็นตัวอย่างพื้นฐานของการเขียนและอ่านข้อมูลชั่วคราวไปยัง EEPROM:

#include <EEPROM.h>

// เขียนค่าชั่วคราวลงใน EEPROM
void writeTempEeprom(int address, byte value) {
  EEPROM.write(address, value);
}

// อ่านค่าชั่วคราวจาก EEPROM
byte readTempEeprom(int address) {
  return EEPROM.read(address);
}

void setup() {
  // เริ่มการสื่อสารซีเรียล
  Serial.begin(9600);

  // เขียนและอ่านจาก EEPROM
  writeTempEeprom(0, 123); // ตัวอย่างค่าและที่อยู่
  byte tempValue = readTempEeprom(0);

  // แสดงค่าชั่วคราว
  Serial.print("Temporary Value: ");
  Serial.println(tempValue);
}

void loop() {
  // ไม่มีอะไรที่นี่สำหรับตัวอย่างนี้
}

และถ้าคุณกำลังทำงานกับการ์ด SD:

#include <SPI.h>
#include <SD.h>

File tempFile;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // รอจนกว่าพอร์ตซีเรียลจะเชื่อมต่อ จำเป็นสำหรับพอร์ต USB แบบเนทีฟเท่านั้น
  }

  if (!SD.begin(4)) {
    Serial.println("Initialization failed!");
    return;
  }

  tempFile = SD.open("temp.txt", FILE_WRITE);

  // เขียนบางอย่างลงไปในไฟล์ชั่วคราว
  if (tempFile) {
    tempFile.println("Temporary data string");
    tempFile.close();
  } else {
    Serial.println("Error opening temp.txt");
  }

  // อ่านจากไฟล์ชั่วคราว
  tempFile = SD.open("temp.txt");
  if (tempFile) {
    while (tempFile.available()) {
      Serial.write(tempFile.read());
    }
    tempFile.close();
  } else {
    Serial.println("Error opening temp.txt");
  }

  // อาจเลือกลบไฟล์ชั่วคราวหลังจากใช้งาน
  SD.remove("temp.txt");
}

void loop() {
  // ไม่มีอะไรที่นี่สำหรับตัวอย่างนี้
}

ผลลัพธ์ตัวอย่าง (สำหรับทั้งสองตัวอย่าง) บน Serial Monitor หลังจากที่ทำการ setup ควรจะเป็น:

Temporary Value: 123

หรือ, สำหรับตัวอย่างการ์ด SD:

Temporary data string

ลงลึก

ในอดีต, ไฟล์ชั่วคราวในการเขียนโปรแกรมได้ตอบสนองความต้องการเช่น การแคช, บันทึกการเข้าใช้, หรือการสื่อสารระหว่างกระบวนการ ในระบบเช่นพีซีที่มีระบบปฏิบัติการเต็มรูปแบบ, ไฟล์ชั่วคราวมีมากมาย Arduino มีความแตกต่าง ไมโครคอนโทรลเลอร์มีพื้นที่เก็บข้อมูลที่ไม่ผันแปรน้อย (EEPROM), หรือเราอาจเพิ่มพื้นที่เก็บข้อมูลภายนอกเช่นการ์ด SD

ทางเลือกหนึ่งนอกเหนือจาก EEPROM สำหรับข้อมูลระยะสั้นคือการใช้ RAM (จะหายไปอย่างรวดเร็วระหว่างวงจรพลังงานและการรีบูต) หรือหน่วยความจำภายนอกเช่น Flash หรือ IC แบบต่อสาย

ในแง่ของการใช้งาน, เมื่อเขียนไปยัง EEPROM บน Arduino, ควรจำไว้ว่ามันมีวงจรการเขียนจำกัด (มักจะอยู่ที่ประมาณ 100,000 วงจร) การใช้งานมากเกินไปอาจทำให้มันสึกหรอ—ดังนั้นใช้งานอย่างระมัดระวังสำหรับสถานการณ์ชั่วคราวจริงๆ

การใช้การ์ด SD เป็นพื้นที่เก็บข้อมูลชั่วคราวเหมือนกับการจัดการไฟล์ปกติบนพีซี มันเสนอพื้นที่มากขึ้น แต่ต้องการการจัดการอย่างถูกต้อง เช่น การใช้การ์ดคุณภาพดี, การจัดการการเปิด/ปิดไฟล์อย่างถูกต้อง, และเข้าใจว่ามันช้าเมื่อเทียบกับ EEPROM หรือ RAM

ดูเพิ่มเติม