Помогите со скетчем для RC522
- Войдите на сайт для отправки комментариев
Пнд, 29/08/2016 - 21:18
Привет . Я новичек в программирование . Помогите со скетчем пожайлуста.
Нужно сделать чтоб проверка была не по UID а по блоку или сектору как правильно не знаю.
Как то так.
byte Users[2][16] = {{1,2,3,4, 5,6,7,8, 9,10,255,12, 13,14,15,16}
Вот код в него надо дабавить проверку вместо UID.
Зарание спасибо за помощь
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
unsigned long uidDec, uidDecTemp;
boolean switchOn = false;
boolean cardRead = false;
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);
Serial.println("Waiting for card...");
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
void loop() {
byte status;
byte byteCount;
byte buffer[2]; // длинa мaccивa (16 бaйт + 2 бaйтa кoнтрoльнaя cуммa)
byteCount = sizeof(buffer);
uidDec = 0;
status = mfrc522.PICC_RequestA(buffer, &byteCount);
if (mfrc522.PICC_ReadCardSerial()) {
for (byte i = 0; i < mfrc522.uid.size; i++)
{
uidDecTemp = mfrc522.uid.uidByte[i];
uidDec = uidDec * 256 + uidDecTemp;
}
if ((uidDec == 1704400979) && (switchOn == false))
{
digitalWrite(4, HIGH);
digitalWrite(7, HIGH); // Turn on red LED
switchOn = true;
Serial.println("Switched On");
Serial.println(uidDec);
delay(3000);
}
mfrc522.PICC_ReadCardSerial();
}
else {
if (switchOn == true)
{
Serial.println("Switched Off");
digitalWrite(4, LOW);
digitalWrite(7, LOW);
switchOn = false;
}
}
}