如何使用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;

在设置中,我们什么都不做。

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

在循环中,我们从模拟输入读取数据(将引脚编号替换为您已连接某个模拟传感器的引脚)。我们将该值除以 4,因为analogRead 的值是从 0 到 1023,而一个字节可以存储从 0 到 255 的值。我们使用该函数将此值写入 EEPROM,该函数接受两个参数:要写入的地址和要写入的值。然后我们增加地址并重复此操作。如果此地址到达 EEPROM 存储器的末尾,我们将返回到开头(addr = 0)。EEPROM.write()

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

   EEPROM.write(addr, val);

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

如果您需要将值写入特定地址,您只需提供该地址作为.EEPROM.write()