Advertisement
RuCat

Untitled

Aug 26th, 2024
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.70 KB | Source Code | 0 0
  1. #include <SPI.h>
  2. #include <MFRC522.h>        
  3. #include <SoftwareSerial.h>
  4. #define RST_PIN 9
  5. #define SS 10
  6. #define rx 2
  7. #define tx 3
  8. MFRC522 rfid(SS, RST_PIN);   // Объект rfid модуля
  9. MFRC522::MIFARE_Key key;         // Объект ключа
  10. MFRC522::StatusCode status;      // Объект статуса
  11. int read_uid[4];
  12. int uid_RuCat[4] = {109,90,165,33};
  13. int sarfdata = 0;
  14. int sarfdata2 = 0;
  15. int data = 2;
  16.  
  17. void setup() {
  18.   Serial.begin(9600);              // Инициализация Serial
  19.   SPI.begin();                     // Инициализация SPI
  20.   rfid.PCD_Init();                 // Инициализация модуля
  21.   rfid.PCD_SetAntennaGain(rfid.RxGain_max);  // Установка усиления антенны
  22.   rfid.PCD_AntennaOff();           // Перезагружаем антенну
  23.   rfid.PCD_AntennaOn();            // Включаем антенну
  24.   for (byte i = 0; i < 6; i++) {   // Наполняем ключ
  25.     key.keyByte[i] = 0xFF;         // Ключ по умолчанию 0xFFFFFFFFFFFF
  26.   }
  27. }
  28. void loop() {
  29.   static uint32_t rebootTimer = millis(); // Важный костыль против зависания модуля!
  30.   if (millis() - rebootTimer >= 1000) {   // Таймер с периодом 1000 мс
  31.     rebootTimer = millis();               // Обновляем таймер
  32.     digitalWrite(RST_PIN, HIGH);          // Сбрасываем модуль
  33.     delayMicroseconds(2);                 // Ждем 2 мкс
  34.     digitalWrite(RST_PIN, LOW);           // Отпускаем сброс
  35.     rfid.PCD_Init();                      // Инициализируем заного
  36.   }
  37.   if (!rfid.PICC_IsNewCardPresent()) return;  // Если новая метка не поднесена - вернуться в начало loop
  38.   if (!rfid.PICC_ReadCardSerial()) return;    // Если метка не читается - вернуться в начало loop
  39.   for (uint8_t i = 0; i < 4; i++) {           // Цикл на 4 итерации                    // В формате HEX
  40.     //Serial.print(rfid.uid.uidByte[i], DEC);   // Выводим UID по байтам
  41.     //Serial.print(", ");
  42.     read_uid[i] = rfid.uid.uidByte[i];
  43.   }
  44.   sarfdata = uid_RuCat[0] + uid_RuCat[1] + uid_RuCat[2] + uid_RuCat[3];
  45.   //Serial.print("data1 ");
  46.   //Serial.println(sarfdata);
  47.   sarfdata2 = read_uid[0] + read_uid[1] + read_uid[2] + read_uid[3];
  48.   //Serial.print("data2 ");
  49.   //Serial.println(sarfdata2);
  50.   if (sarfdata == sarfdata2){
  51.     //Serial.println("Welcome, Mahov Mihail");
  52.     Serial.println(data);
  53.     delay(3000);
  54.   }
  55.   else{
  56.     //Serial.println("ERROR: Identification error, try again");
  57.     delay(3000);
  58.   }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement