Кто хочет берите RFID управление реле

DeaDPlayeR DDPR
Offline
Зарегистрирован: 29.10.2016

Вот рабочий скетч так скажем доступа по RFID метки

СКЕТЧ ОПБЕГЧЁННЫЙ!

#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
int mode = 0;
unsigned long uidDec, uidDecTemp;
void setup() {
        Serial.begin(9600);
        pinMode(7, OUTPUT);
        SPI.begin(); 
        mfrc522.PCD_Init();
        digitalWrite(7, HIGH);
        Serial.println("Created DeaDPlayeRDDPR");
        Serial.println("DON'T HOLD RFID >1sec. IT'S CAN ERROR!");
}

void loop() {
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
          uint32_t uidDec, uidDecTemp;
          for (byte i = 0; i < mfrc522.uid.size; i++) {
          uidDecTemp = mfrc522.uid.uidByte[i];
          uidDec = uidDec * 256 + uidDecTemp;
          }
          Serial.println(uidDec);
          if (uidDec == 3506418763) // Сравниваем Uid метки, если он равен заданому то серва открывает.
          {
          Serial.println("MNP0H0B");
          mode==mode++;
          if (mode==1){
          digitalWrite(7, LOW);
          }
          if (mode==2){
          digitalWrite(7, HIGH);
          mode=0;
          }
          delay(1000);
          }}
  }

 

b707
Offline
Зарегистрирован: 26.05.2017

Во-первых, в коде есть явные ошибки, например в строке 29.

Во-вторых, логика программы отвратительна. Карту надо держать на считывателе ровно 1000 мс - и ни миллисекундой меньше или больше, иначе серва будет работать вечно.

С таким уровнем программирования я бы не советовал "делиться" своим кодом с сообществом.