Помогите со скетчем для 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; } } }