首页 > 解决方案 > 我可以在 Arduino Mega 中临时存储 16 位卡号及其 4 位密码吗?

问题描述

我有一个读取 16 位卡号的 RFID RC522 阅读器和一个连接到 Arduino Mega 2560 Rev3 的迷你键盘,它读取 4 位密码。现在我已经连接了一个 ESP-8266 Wi-Fi 模块,以便将该 16 位卡号和 4 位密码发送到服务器以验证它是否是有效的卡用户。所以现在我想一次将卡号和密码发送到服务器,以减少对服务器的请求数量。

现在我想问一下Arduino中是否有足够的内存来临时存储20位数字并从服务器获取布尔值,无论它是否是有效用户。

标签: arduinosmartcardrfidarduino-esp8266mfrc522

解决方案


Mega2560 中的 ATmega2560 具有以下内存空间:

Flash 256k 字节(其中 8k 用于引导加载程序) SRAM 8k 字节 EEPROM 4k 字节

基于 Arduino 和 Genuino AVR 的板上的微控制器具有 EEPROM:当板关闭时,其值会保留下来(就像一个微型硬盘驱动器)。该库使您能够读取和写入这些字节。

各种 Arduino 和 Genuino 板上支持的微控制器具有不同数量的 EEPROM:ATmega328P 为 1024 字节,ATmega168 和 ATmega8 为 512 字节,ATmega1280 和 ATmega2560 为 4 KB(4096 字节)。Arduino 和 Genuino 101 板具有 1024 字节的模拟 EEPROM 空间。

要使用特定的 EEPROM 库,请使用:#include <EEPROM.h>

例子

EEPROM Clear: Clear the bytes in the EEPROM.
EEPROM Read: Read the EEPROM and send its values to the computer.
EEPROM Write: Stores values from an analog input to the EEPROM.
EEPROM Crc: Calculates the CRC of EEPROM contents as if it was an array.
EEPROM Get: Get values from EEPROM and prints as float on serial.
EEPROM Iteration: Understand how to go through the EEPROM memory locations.
EEPROM Put: Put values in EEPROM using variable semantics.
EEPROM Update: Stores values read from A0 into EEPROM, writing the value only if different, to increase EEPROM life.

完整参考在这里:https ://www.arduino.cc/en/Reference/EEPROM

总结和回答您的问题,是的,可以将您的数据量存储在 Arduino Mega 中,也可以使用在板关闭时保留其值的 EEPROM(如微型硬盘驱动器)。一切顺利


推荐阅读