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