школьный проект

Тема в разделе "Закажу проект", создана пользователем Маруся, 2 авг 2019.

  1. Onkel

    Onkel Гуру

    Я могу подсказать только как сделать с покнижным считыванием, но не очень быстро. Поеду в субботу в Москву наберу карточек метро, через недельку- другую попробую. мой мыл ydom@mail.ru - отпишите чтобы напрямую.
     
  2. Маруся

    Маруся Нуб

    благодарю
     
  3. Onkel

    Onkel Гуру

    Карточек метро не набрал, ну вернее набрал но потерял, сделал с теми что были. На схеме - светодиоды -один красный, один зеленый, биппер EP1 любой на 5 В, возможно нужно будет резистор поставить для ограничения тока, S1 - любой тумблер (режим запись - работа).


    Код (C++):

    #include <SPI.h>
    #include <MFRC522.h> // библиотека "RFID".
    #include <EEPROM.h>

    #define SS_PIN 10
    #define RST_PIN 9

    #define WRITECARDZ  1
    #define READCARDZ 0


    MFRC522 mfrc522(SS_PIN, RST_PIN);
    unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате
    unsigned long Cardz[32];
    byte QofCardz, OldMode, FlagOfNew, Done;

    byte Taken[32];
    void setup() {

      pinMode(4, INPUT_PULLUP);
      pinMode(5, OUTPUT);
      pinMode(6, OUTPUT);
      pinMode(7, OUTPUT);

      Serial.begin(9600);
      Serial.println(" MFR522 Textbook Reminder  MFR522_TB   Waiting for card...");
      SPI.begin();  //  инициализация SPI / Init SPI bus.
      mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.


      EEPROM.get(0, QofCardz  );
      if (QofCardz > 0 && QofCardz < 33)
      {
        for (byte j = 0; j < QofCardz; j++)
          EEPROM.get(1 + sizeof(long)*j, Cardz[j]);

        Serial.print("Textbooks in List : ");
        Serial.println(QofCardz);

      }
      else
      {
        QofCardz = 0;
        Serial.println("No Cardz in Memory");
      }

    }
    void loop() {

      if (digitalRead(4) == LOW)
      {

        if (OldMode == READCARDZ)
        {
          OldMode = WRITECARDZ;
          QofCardz = 0;
          Serial.println("Erase All the Cardz from Memory");
        }

        // Поиск новой метки
        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;
          }
          FlagOfNew = 1;
          for (byte i = 0; i < QofCardz; i++)
          {

            if (uidDec == Cardz[i])
              FlagOfNew = 0;

          }

          if (FlagOfNew == 1)
          {
            Serial.print("New  Card in Memory  UID Card No  ");
            Serial.print(QofCardz);
            Serial.print("   UID    ");
            Serial.println(uidDec); // Выводим UID метки в консоль.
            Serial.print("  Cards in Portfolio:   ");
            Serial.println(QofCardz + 1);

            Cardz[QofCardz] = uidDec;
            QofCardz++;
            digitalWrite(5, HIGH);
            digitalWrite(6, LOW);
            digitalWrite(7, HIGH);


            delay (500);
            digitalWrite(5, LOW);
            digitalWrite(6, LOW);
            digitalWrite(7, LOW);
          }

        }

      }
      else
      {

        if (OldMode ==  WRITECARDZ)
        {
          OldMode =  READCARDZ;
          Serial.print("Config is done. Cards in Portfolio if Memory : ");
          Serial.println(QofCardz);

          EEPROM.put(0, QofCardz  );
          for (byte j = 0; j < QofCardz; j++)
            EEPROM.put(1 + sizeof(long)*j, Cardz[j]);


        }

        // Поиск новой метки
        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;
          }
          for (byte i = 0; i < QofCardz; i++)
          {

            if (uidDec == Cardz[i])
            {
              Taken[i] = 1;


              Done = 0;
              for (byte j = 0; j < QofCardz; j++)
              {
                if (Taken[j] == 1)
                  Done = Done + 1;


              }

              Serial.print("Added to Portfolio  Card No  ");

              Serial.println(uidDec); // Выводим UID метки в консоль.

              Serial.print("Need more textbooks:  ");

              Serial.println(QofCardz - Done ); // Выводим UID метки в консоль.


              digitalWrite(6, HIGH);
              digitalWrite(5, LOW);
              digitalWrite(7, HIGH);

              delay (500);
              digitalWrite(5, LOW);
              digitalWrite(6, LOW);
              digitalWrite(7, LOW);
              Done = 0;
              for (byte j = 0; j < QofCardz; j++)
              {
                if (Taken[j] == 1)
                  Done = Done + 1;


              }

              if (Done == QofCardz)
              {
                Serial.println("All Done  ");


                digitalWrite(6, HIGH);
                digitalWrite(5, LOW);
                digitalWrite(7, HIGH);
                delay (500);
                digitalWrite(7, LOW);

              }

            }

          }

     
          delay(100);
        }

      }
    }
     

    Вложения:

    • RFID_RC5220.JPG
      RFID_RC5220.JPG
      Размер файла:
      169,3 КБ
      Просмотров:
      380
  4. Onkel

    Onkel Гуру

    Вот видео

     
    KindMan нравится это.
  5. Mr. Snips

    Mr. Snips Нуб

    могу помочь whatsapp 89061478641
     
  6. Mr. Snips

    Mr. Snips Нуб

    могу помочь whatsapp 89061478641
     
  7. ostrov

    ostrov Гуру

    Дети совсем отупеют, окончательно. За них еще учебник компьютер собирать будет.
     
  8. 89061478641 Этот номер как правильно в Ватцапе найти? Ватцап его не видит.