如何使用 Arduino 將資料寫入 EEPROM?


Arduino Uno 擁有 1 kB 的 EEPROM 儲存空間。EEPROM 是一種非易失性儲存器,即其內容即使在斷電後也能保留。因此,它可以用來儲存您希望在電源迴圈之間保持不變的資料。配置或設定就是此類資料的示例。

示例

在本例中,我們將瞭解如何將資料寫入 EEPROM。我們將逐步完成 Arduino 中的內建示例。EEPROM 示例可以透過以下方式訪問:**檔案 → 示例 → EEPROM**。

我們將檢視 **eeprom_write** 示例。由於 EEPROM 庫的存在,它非常簡單。這裡需要提醒一下。請謹慎使用 **.write()** 函式。每個 EEPROM 的每個地址的寫入週期數量有限(約 100,000 次)。如果過度寫入 EEPROM,會縮短 EEPROM 的使用壽命。

我們從包含庫開始。

#include <EEPROM.h>

接下來,為 EEPROM 地址欄位(要寫入的地址)定義一個全域性變數

int address = 0;

在 setup 中,我們什麼也不做。

void setup() {
   /** Empty setup. **/
}

在迴圈中,我們從模擬輸入讀取資料(將引腳號替換為您連線某些模擬感測器的引腳)。我們將該值除以 4,因為 **analogRead** 值從 0 到 1023,而一個位元組可以儲存從 0 到 255 的值。我們使用 **EEPROM.write()** 函式將此值寫入 EEPROM,該函式接收兩個引數:要寫入的地址和要寫入的值。然後我們遞增地址並重復此操作。如果此地址到達 EEPROM 記憶體的末尾,我們將返回開頭(**addr = 0**)。

void loop() {
   int val = analogRead(A0) / 4;

   EEPROM.write(addr, val);

   addr = addr + 1;
   if (addr == EEPROM.length()) {
      addr = 0;
   }
   delay(100);
}

如果您需要將值寫入特定地址,只需在 **EEPROM.write()** 中提供該地址作為引數即可。

更新於: 2021-07-26

1K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告