Проблема с uid и EEPROM
- Войдите на сайт для отправки комментариев
Сб, 29/04/2017 - 20:26
#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 и при включении работал так же, как до выключения. Тобишь без потери данных. Как и куда копать?
Не получается подружить запись uid и EEPROM.
Не получается или "не пробовал"? Если прбовоал, то в каком месте кода и что не так.
Как и куда копать?
Если делаете сами, показывайте как делаете. Если хотите, чтобы Вам выдали готовое решение - копайте в сторону раздела "Ищу исполнителя".
Копать здесь:
http://bigbarrel.ru/eeprom/
http://arduino.ru/forum/programmirovanie/zapis-i-chtenie-eeprom-peremenn...