Arduino EEPROM Tutorial |如何使用Arduino的内部EEPROM?

在本教程中,我们将学习一种称为EEPROM的特殊内存类型。我们还将看到如何使用Arduino的内部EEPROM和它的用途。我们将搭建一个小电路,了解如何使用Arduino EEPROM的READ和WRITE功能。

作为本教程的扩展,我将向您展示如何在下一个教程中使用AT24C32或AT24C256等外部EEPROM使用Arduino。

介绍

计算机中的内存是一个迷人的主题。简单地说,内存是用于存储信息的设备。所有计算机,无论是基于大型微处理器的系统还是基于小型微控制器的嵌入式设备,需要内存永久或临时存储数据。

让我们以Arduino为例。如果您看看这个Arduino Uno引脚专题教程中提到的Arduino Uno板的规格,您可以找到UNO有三种类型的内存:

  • 32kb Flash
  • 2 KB的RAM
  • 1kb EEPROM

保持尺寸值,闪光灯和EEPROM是类型为永久存储器的类型,RAM是临时存储器。这是什么意思?永久存储器是一种内存类型,即使在断开电源后也可以存储数据/信息。

另一方面,临时存储器用于在程序运行时保存临时数据,并且它可以保持这些值直到连接电源。

基于对电源的依赖性,存储器可以分为两种类型:

  • 非易失性记忆
  • 挥发性记忆

Flash和EEPROM属于非易失性存储器类别,其中Flash用于存储程序代码,而EEPROM用于存储小数据(如传感器数据日志或硬件信息)。即使断电,这两种记忆也会保存它们的数据。

即将到RAM,它是一个易失性的内存,即,一旦电源断开连接,数据就会消失。

eepm是什么?

现在让我们专注于感兴趣的记忆。EEPROM或E.2电可擦可编程只读存储器是ROM(只读存储器),可编程只读存储器(可编程只读存储器)和EPROM(可擦可编程只读存储器)的后继产品。

在进一步前进之前,让我们在回忆中课程课程。ROM或只读存储器是一种非易失性存储器,用于永久存储嵌入式系统的固件等数据。

初始ROM是工厂编程的,无法更改ROM的内容。这些也称为MROM(屏蔽只读存储器)。

然后是舞会或可编程只读内存。它们可以由最终用户(具有名为奖励程序员的特殊设备)编程,但是它是一次性作用,即,它们只能编程一次。

为了克服舞会的“一次性可编程”问题,开发了EPROM。它代表可擦除可编程只读存储器。可以通过将其暴露于强UV光来擦除存储器,并且可以编程类似于PROM。

EPROM的一个问题是重复暴露于强光(通常来自汞蒸汽灯)最终将磨损将擦除循环限制在小于1000的内存。

最后,EEPROM或电可擦可编程只读存储器被开发出来,这样当存储器仍然被放置在系统中时,它就可以电擦除(这是用EPROM不可能做到的)。

注意:现代闪存,用于存储卡,USB闪存驱动器,固态驱动器,微控制器等。是一种EEPROM。

现代微控制器使用闪存存储固件和EEPROM来存储小数据(如参数,设备ID,历史等)。

在Arduino eepm

在我们的Arduino项目中使用EEPROM允许我们存储简单的数据,如默认设置,即使电源关闭,即使电源)也是如此的默认设置,LED状态或状态的状态。

使用Arduino使用EEPROM有两个选项。第一种和简单的方法是使用Arduino的内部EEPROM。第二个选项是从Atmel中添加AT24系列的外部EEPROM IC。让我们专注于本教程的Arduino的内部EEPROM。

由于内部EEPROM是微控制器而不是主板的特性,所有Arduino板,如UNO, Mega和Nano都有一定数量的内部EEPROM。

下表显示了各种Arduino板中使用的一些公共附录微控制器的内部EEPROM的大小。

单片机 董事会 尺寸
Atmega328p. UNO,纳米、迷你 1024字节(1kb)
ATmega2560 大型 4096字节(4 KB)
Atmega168 纳米 512字节

Arduino EEPROM库

EEPROM库是一个特殊库,使您能够读取和写入Arduino板上的微控制器的内部EEPROM。它标配IDE,您不必下载任何额外的东西。

Arduino EEPROM库为您提供了五种非常有用的功能:

  • EEPROM.READ()—从EEPROM读取一个字节。
  • EEPROM.WRITE()—写一个字节到EEPROM。
  • EEPROM.UPDATE()- 仅当当前值与先前值不同时,才会向EEPROM写入字节。
  • EEPROM.GET()-从EEPROM读取任何数据类型(float或struct或任何数据类型)。
  • EEPROM.put ()-写入任何数据类型的EEPROM (float或struct或任何数据类型)。

Arduino IDE中有用于EEPROM库的示例。浏览这些信息以获取更多信息。

测试电路:记住继电器状态

我们已经看到了很多关于EEPROM的理论以及Arduino中的EEPROM。只有当我们看到实际执行时,所有这些理论才有意义。所以,让我们搭建一个小电路来测试Arduino的EEPROM特性。这个应用程序叫做“Arduino能记住继电器的状态吗?”

Arduino-EEPROM-测试电路

在这个测试电路中,我将使用一个按钮来打开或关闭继电器。同时,我也将在EEPROM中存储继电器的状态,每当按钮被按下。因此,如果重新启动Arduino,它首先从EEPROM检查继电器之前的状态,并将继电器设置为该位置。

电路图

下图为Arduino EEPROM测试电路图。

Arduino-EEPROM-测试电路图
Arduino EEPROM测试电路电路图

代码

正如我已经说过的,您不需要任何额外的库。您所要做的就是在代码中包含“EEPROM.h”头文件。

结论

一个初学者的指南/教程上的EEPROM在Arduino。在本教程中,您学习了如何使用Arduino的内部EEPROM。在下一个教程中,我将向您展示如何将一个外部EEPROM IC添加到Arduino。

留下一个回复

您的电子邮件地址不会被公开。必需的地方已做标记*