Olá pessoal! estou com um problema aqui com meu sensor rfid, estou começando na programação ainda, gostaria de uma ajuda, eu preciso acionar um rele quando aproxima a tag, do leitor, o rele ficara atracado todo o tempo que a tag estimer próxima do leitor, e desatraca quando afastar do leitor, até agora só consegui fazer ele atracar, mas fica pulsando, não consigo deixa ele só ligado de forma constante.
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>
#define Rele 8
PN532_I2C pn532_i2c(Wire); //instancia criada para comunicação i2c.
NfcAdapter nfc = NfcAdapter(pn532_i2c); // instancia nfc que recebe pn532_i2c criada anteriormente
String tags[] = {"CC 63 D3 2F"}; //entre as aspas fica o id do tag, precisa identificar o id do tag e colar aqui
boolean autorizado = false; // compara se o tag confere ou não
int timer = 1;
int Led = 0;
void setup(void) {
pinMode(Rele, OUTPUT); // pino de sinal de saida para acionar uma carga caso seja verdadeiro ou falço o tag
nfc.begin(); // inicia nfc
delay(20);
}//end setup
void loop(void) {
if (nfc.tagPresent()) { // faz a leitura para ver se tem um tag proximo, para ser lido
NfcTag tag = nfc.read(); // variavel nfctag para receber as leituras
for (int i = 0; i < sizeof(tags); i++) { // arrai com todos os id dos tags para serem comparados no sistema
if ( tag.getUidString() == tags[i]) { // compara os id e verifica se o id cadastrado se encontra no arrai
autorizado = true; // se o id se encontra no sistema, variavel boolean passa para verdadeiro
if (autorizado ) timer = 1;
if (timer == 1 && Led == 0 ) { // variavel altorizado em verdadeiro aciona pino 8 caso contrario apaga pino 8
digitalWrite(Rele, 1);
delay(300);
digitalWrite(Rele, 0);
Led = 1;
} else {
if (timer == 1) {
digitalWrite(Rele, 0);
Led = 0;
}
}
//}
}
}
}
//autorizado = 0;
//}
}// end loop