如何使用 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()** 中提供该地址作为参数即可。
广告