Хранить целочисленное значение денег на RFID-метке

Я работаю над созданием аркады на базе Arduino. Я хочу, чтобы у каждого пользователя аркады была RFID-карта, которая хранит количество кредитов (в основном денег), которые у них есть. Я знаю, что RFID-метки имеют 1028 байт памяти, но я не знаю, как записать в них целочисленное значение.

Количество кредитов, имеющихся у каждого пользователя, будет храниться на RFID-карте, а также его PIN.

ПИН-код будет состоять из 4 цифр, причем каждая цифра будет целым числом от 0 до 9, как это принято в стандарте с пин-кодами. Он будет храниться как одно целое число, между 0000 и 9999.

Кредит ТАКЖЕ будет храниться на каждой карте. Это будет от 0 до 99 (самое большее, что можно загрузить за один раз). Это тоже будет рассматриваться как одно целое число для удобства использования.

Оба целых числа будут иметь тип Arduino int.

Я использую библиотеку MFRC522 с устройством чтения/записи RC522. У меня есть Arduino Uno, но я могу легко переключиться на Arduino Nano.

Кто-нибудь может сказать мне, как это сделать?: A. Записать целочисленное значение (сохраненное как переменная в скетче или доступное из памяти RFID) на RFID - карту? B. Получить доступ к этой информации и получить ее в виде целого числа, с которым я мог бы работать (+ , -,÷, × и т.д.)?

Заранее спасибо!

, 👍1


1 ответ


Лучший ответ:

1

Вы можете считывать данные с помощью :

status = mfrc522.MIFARE_Read(blockNum, readBlockData, &bufferLen);  

и записать данные с помощью:

status = mfrc522.MIFARE_Write(blockNum, blockData, 16);

Однако это еще не все, поэтому проверьте примеры библиотеки RFID или эти внешние статьи:

https://www.electronicshub.org/write-data-to-rfid-card-using-rc522-rfid/ https://playground.arduino.cc/Learning/MFRC522/

Когда вы читаете данные в блоке памяти, вы можете получить нужные вам байты и преобразовать их в int или наоборот для записи.

,

Таким образом, blockNum будет заменен номером блока цели, а blockData останется прежним?, @RMCodes

Я не уверен на 100%, что вы имеете в виду ... blockNum-это целое число (значение) целевого объекта, а block data-это буфер, содержащий содержимое этого блока (целевого объекта), который обычно представляет собой 8-битный массив (обычно байт без знака*)., @Michel Keijzers

Я не был уверен, что в приведенном выше коде было заполнителями и что должно было оставаться неизменным, когда я делаю скетч, @RMCodes

blockNum-это входной параметр (то есть он не меняется). readBlockData изменяется (вместе с считываемыми данными), а также bufferLen, который содержит количество прочитанных байтов (и не переполняет буфер чтения). blockData (для записи) не изменяет буфер (но изменяет фактическое содержимое RFID - метки)., @Michel Keijzers