нужен скетч. у самого не получилось.

Тема в разделе "Закажу проект", создана пользователем mf2, 12 дек 2017.

  1. mf2

    mf2 Нерд

    Доброго времени суток!

    д2 - геркон (вход)
    д3 - реле нр, (выход)
    д4 - красный светодиод (выход)
    д5 - зеленый светодиод (выход)
    имеется считыватель rfid (rfid-rc522) и 2 ключа .
    при включенном питании светодиод на д5 (зеленый) горит постоянно
    при первоначальном включении д4 (красный) горит, проверяем статус д2, при low значении включаем д3 до считывания зарегистрированной метки.

    при считывании метки на рфид зарегистрированного ключа гасится д5 (красный светодиод) и если было запущено д3 (реле) - переводим его в low.
    при повторном считывании метки д4 зажигаем и слушаем статус д2, при low значении включаем д3 до считывания зарегистрированной метки.

    метки имеют одинаковый приоритет.

    Код (C++):
    #include <SPI.h> //нужна для RC522
    #include <MFRC522.h> // библиотека "RFID".
    MFRC522 mfrc522(10, 9);
    unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате
    int GreenLed = 5;//d5
    int RedLed = 4;//d4
    int RelayDev = 3;//d3
    int GerkonDev = 2; //d2
    int Arm;
    void setup()
      {
      Serial.begin(9600);
      Serial.println("Waiting for card...");
      SPI.begin();  //  инициализация SPI / Init SPI bus.
      mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.
      pinMode(RelayDev, OUTPUT);//выход
      pinMode(GerkonDev, INPUT);//вход
      pinMode(GreenLed, OUTPUT); //индикация питания
      pinMode(RedLed, OUTPUT); //индикация
      digitalWrite(GreenLed,HIGH);
      Arm = digitalRead(GerkonDev);//забираем статус геркона

      }
    void loop()
    {
      Arm = digitalRead(GerkonDev);//забираем статус геркона
      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;}
      //------------------------------------
      Serial.println("Card UID: "); //надо же знать какую метку надо если что добавить.(сервис)
      Serial.println(uidDec); // Выводим UID метки в консоль.
      delay (2000); // ждем 2 секунды перед следующим введением метки
      //-----если метки есть в списке разрешенных переключаем режимы работы---

    /*
    * а дальше полшестого:(
    * id меток в десятичном формате: 1973922155,299185877
    */

    }
     
  2. Developer-RU

    Developer-RU Гик

    1000 рублей.
     
  3. mf2

    mf2 Нерд

    спасибо за отклик, но уже сделал