RFID

Тема в разделе "Arduino & Shields", создана пользователем Дэн Пискунов, 25 май 2019.

Метки:
  1. Помогите как сюда добавить еще несколько карт ?

    Код (C++):
    #include <SPI.h>
    #include <MFRC522.h> // библиотека "RFID".
    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате

    void setup() {
      Serial.begin(9600);
      Serial.println("Waiting for card...");
      SPI.begin();  //  инициализация SPI / Init SPI bus.
      mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.
      pinMode(4, OUTPUT);
    }
    void loop() {
      // Поиск новой метки
      if ( ! mfrc522.PICC_IsNewCardPresent()) {
       digitalWrite(4, LOW);
       return;
      }
      // Выбор метки
      if ( ! mfrc522.PICC_ReadCardSerial()) {
       digitalWrite(4, LOW);
       return;
      }
      uidDec = 0;
      // Выдача серийного номера метки.
      for (byte i = 0; i < mfrc522.uid.size; i++)
      {
        uidDecTemp = mfrc522.uid.uidByte;
        uidDec = uidDec * 256 + uidDecTemp;
      }
      Serial.println("Card UID: ");
      Serial.println(uidDec); // Выводим UID метки в консоль.
      if (uidDec == 2712763339) // Сравниваем Uid метки, если он равен заданому то серва открывает.
      {
      digitalWrite(4, HIGH);
      }
    digitalWrite(4, LOW);
    }
     
    Последнее редактирование: 26 май 2019
  2. Daniil

    Daniil Гуру

    Для начала, вставьте, пожалуйста код через теги. В каждом разделе есть прикрепленная тема с инструкциями.
    Если мне не изменяет память, то, кажется, модули рфид не очень хорошие по отношению к miso, рфид не отпускают их, что и мешает их наращиванию "в лоб". Попробуйте поиском пробежаться по форуму
     
    Airbus нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Все просто.Если uid Dec==2712763339||0123456789||2233445566 что то делаем.Иначе нет.Либо если uidDec==nunber что то делаем иначе нет.Как то так.Мысль понятна?
     
    Daniil нравится это.
  4. Daniil

    Daniil Гуру

    Я всё попутал
     
  5. parovoZZ

    parovoZZ Гуру

    по-хорошему надо-бы скобочки поставитьс.
     
  6. Airbus

    Airbus Радиохулиган Модератор

    Это наводка.Пусть ТС сам ставить что надо где надо.
     
  7. не я не понял не чего
     
  8. Код (C++):
    #include <SPI.h>
    #include <MFRC522.h> // библиотека "RFID".
    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате

    void setup() {
      Serial.begin(9600);
      Serial.println("Waiting for card...");
      SPI.begin();  //  инициализация SPI / Init SPI bus.
      mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.
      pinMode(4, OUTPUT);
    }
    void loop() {
      // Поиск новой метки
      if ( ! mfrc522.PICC_IsNewCardPresent()) {
       digitalWrite(4, LOW);
       return;
      }
      // Выбор метки
      if ( ! mfrc522.PICC_ReadCardSerial()) {
       digitalWrite(4, LOW);
       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 метки в консоль.
      if (uidDec == 2712763339); // Сравниваем Uid метки, если он равен заданому то серва открывает.

      Serial.println("Card UID: ");
      Serial.println(uidDec); // Выводим UID метки в консоль.
      if (uidDec == 1027896139) // Сравниваем Uid метки, если он равен заданому то серва открывает.
     
      {
      digitalWrite(4, HIGH);
        delay(1000);
      }
    digitalWrite(4, LOW);  
       return;
    }