Arduino EEPROM 教學
說明
可以用來儲存資源,並且重新開機後
資料不會消失
因此可以用來儲存一些
重新開機也不會消失的資料
匯入EEPROM.h Library
匯入 Library
#include <EEPROM.h>
取得 EEPROM 大小
透過 EEPROM.length()
即可以取得 Arduino 內建的 EEPROM 大小
像 Arduino Uno 的內建 EEPROM 為 1024
EEPROM.length()
得到的結果就是 1024
EEPROM.length()
EEPROM.write () 寫入資料
EEPROM.write
透過此函式進行寫入資料的動作
- 第一個參數:資料位置
- 第二個參數:資料
範例:寫入字串
WriteInfoEEPROM("Hello");
void WriteInfoEEPROM(String text){
for (int i = 0; i < text.length(); ++i)
{
EEPROM.write(i, text[i]);
}
}
清除資料
清除資料其實就是在每個 EEPROM 上填 0
範例:清除資料副程式
void CleanEEPROM(){
for (size_t i = 0; i < EEPROM.length(); i++)
{
EEPROM.write(i, 0);
}
}
EEPROM.read() 讀取資料
透過 EEPROM.read()
可以得到在特定位置的資料
範例程式碼
#include <EEPROM.h>
void setup() {
Serial.begin(9600);
String Data = "Hello";
String EEPROM_String;
// Clean Data from EEPROM
CleanEEPROM();
// Write Data to EEPROM
WriteInfoEEPROM(Data);
// Reading Data from EEPROM
for (int i = 0; i < Data.length(); i++)
{
EEPROM_String += char(EEPROM.read(i));
Serial.print("Reading String = ");
Serial.println(char(EEPROM.read(i)));
}
Serial.print("Full String = ");
Serial.println(EEPROM_String);
}
void loop() {}
void CleanEEPROM(){
for (size_t i = 0; i < EEPROM.length(); i++)
{
EEPROM.write(i, 0);
}
Serial.println("Clean EEPROM");
}
void WriteInfoEEPROM(String text){
for (int i = 0; i < text.length(); ++i)
{
EEPROM.write(i, text[i]);
}
}
輸出結果
Clean EEPROM
Reading String = H
Reading String = e
Reading String = l
Reading String = l
Reading String = o
Full String = Hello