Проблема с uid и EEPROM

Lui22
Offline
Зарегистрирован: 07.03.2016
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp; //переменые для хранения uid карты
unsigned long h0 = 0; //ячейка для записи
int my_timer = 0; //таймер
boolean allow; //флаг
void setup() {
  Serial.begin(9600);//Соединение с ПК
  Serial.println(" Waiting for card...");
  SPI.begin();
  mfrc522.PCD_Init();
}

void loop() {
  //Ожидание карты
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;  }
    
  //Попытка чтения
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;  }
  uidDec = 0;

  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec*256+uidDecTemp;   }

  Serial.println("Card UID: ");
  Serial.println(uidDec);

  // начинаем сравнивать номер "UID", поднесённой к ридеру карты,
  // с записанным номером "UID" карты в sketch.
  if (uidDec == h0) // если "UID" номер совпал.
  {
    Serial.println("Hi!");
     }
  else{
    Serial.println("unknown card");
  }
  if (uidDec == 3558486142) { //Если поднесена карта записи, то активируется флаг
  my_timer = millis();
  allow = true; }

  if (uidDec != 0 && allow == true && h0 == 0 && uidDec != h0 && uidDec !=3558486142) { //запись только если есть карта, флаг активирован, ячейка пуста и ноиер карты не совпадает с номером карты в ячейке
  delay(4000);
  h0 = uidDec;
  Serial.println("Writed! Cell-1");
  Serial.println(h0);  }

    if (millis() - my_timer > 15000 && allow == true) { //Закрытие флага по истечении 15 секунд
  allow = false; }
 
  Serial.println("=====================================");
  delay(5000); // пауза
}

Не получается подружить запись uid и EEPROM. Нужно так, чтобы номер uid записывался в EEPROM и при включении работал так же, как до выключения. Тобишь без потери данных. Как и куда копать?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lui22 пишет:

Не получается подружить запись uid и EEPROM. 

Не получается или "не пробовал"? Если прбовоал, то в каком месте кода и что не так.

Lui22 пишет:

Как и куда копать?

Если делаете сами, показывайте как делаете. Если хотите, чтобы Вам выдали готовое решение - копайте в сторону раздела "Ищу исполнителя".

 

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013