Помогите новичку.

Zeka
Offline
Зарегистрирован: 03.02.2017

Привет. Помогите написать скетч для замка. Надо чтоб поднес ключ замок сработал и пока ключь не убрали магнит держал ,ключ убрал он вернулся обратно. Таких скетчей полно но они все проверяют по uid я их пробовал но это не то, мне надо чтоб по блоку допустим 4,5 из сектора 1 . Будет много ключей, чтобы я мог их прописать под один ID.Все это будет работать на arduino nano и rfid-rc522. Как то так.Я собрал скетч из кусков он работает как мне надо но проверка по UID там.

Zeka
Offline
Зарегистрирован: 03.02.2017
Вот код.
#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;
    }

    Serial.println(uidDec);
    //mfrc522.PICC_HaltA(); // Stop reading

    if ((uidDec == 1964518007) && (switchOn == false))
    {
      digitalWrite(4, HIGH);
      digitalWrite(7, HIGH);   // Turn on red LED
      switchOn = true;
      Serial.println("Switched On");
      Serial.println(uidDec);
      tone(3, 3000); // Делаем звуковой сигнал, Открытие
      delay(3000);
      digitalWrite(7, LOW);
      digitalWrite(6, HIGH);
    }
    mfrc522.PICC_ReadCardSerial();

  } else {
    if (switchOn == true) {
      Serial.println("Switched Off");
      digitalWrite(4, LOW);
      digitalWrite(7, LOW);
      digitalWrite(6, LOW);
      tone(3, 500,300); // Делаем звуковой сигнал, Закрытие
      switchOn = false;
    }
  } 
}

 

Zeka
Offline
Зарегистрирован: 03.02.2017

Не ужели не кто не может мне помоч вроде не с такой уж и сложной проблеммой. Или подскажите на какой форум мне обратится где мне помогут ?