Olá sou novo aqui no forum e em arduino tbm estou com esse projeto já consegui fazer funcionar mais ele esta com um erro simples porem pra mim é dificil resolver 

o projeto é para abrir uma porta eletrica com rfid esta funcionando blz porém ao passar a tag ele desativa o rele por 2 segundos e não ativa , funciona mais tenho que inverter os fios da fechadura no rele como posso resolver isso?

segue o código

//Programa : RFID - Controle de Acesso leitor RFID
//Autor : FILIPEFLOP

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

#define SS_PIN 10
#define RST_PIN 9

const int modulo_rele = 8;
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.

LiquidCrystal lcd(6, 7, 5, 4, 3, 2);

char st[20];

void setup()
{
pinMode(modulo_rele,OUTPUT);
Serial.begin(9600); // Inicia a serial
SPI.begin(); // Inicia SPI bus
mfrc522.PCD_Init(); // Inicia MFRC522
Serial.println("Aproxime o seu cartao do leitor...");
Serial.println();
//Define o número de colunas e linhas do LCD:
lcd.begin(16, 2);
mensageminicial();
}

void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Mostra UID na serial
Serial.print("UID da tag :");
String conteudo= "";
byte letra;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Mensagem : ");
conteudo.toUpperCase();
if (conteudo.substring(1) == "B4 A0 24 EB") //UID 1 - Chaveiro
{
Serial.println("Ola Katiane !");
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ola Katiane!");
lcd.setCursor(0,1);
lcd.print("Acesso liberado!");
digitalWrite(modulo_rele, HIGH);
delay(1500);
digitalWrite(modulo_rele, LOW);
delay(2000);
mensageminicial();
}

if (conteudo.substring(1) == "FB 05 E8 03") //UID 2 - Cartao
{
Serial.println("Ola Wellington !!!");
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ola Wellington!");
lcd.setCursor(0,1);
lcd.print("Acesso Liberado !");
digitalWrite(modulo_rele, HIGH);
delay(1500);
digitalWrite(modulo_rele, LOW);
delay(2000);
mensageminicial();
}
}

void mensageminicial()
{
lcd.clear();
lcd.print(" Aproxime o seu");
lcd.setCursor(0,1);
lcd.print("cartao do leitor");
}

Exibições: 557

Responder esta

Respostas a este tópico

Boa Noite!

Tenho um código que modifiquei para meu uso talvez sirva para você

Anexos

É realmente interessante mais deu tanto trabalho pra mim conseguir modificar esse meu pra dar certo que da até dó de tentar outro o meu não tem leds como esse seu  é outra coisa que eu queria ver tbm quando passar a tag acender um led verde se liberado ou um vermelho se negado ..

 Mais sobre meu código tem como começar ele com o rele desativado e ativa lo só quando passar a tag? obrigado

Seu rele não tem 3 contatos?

Centro, NA e NF.
Inverta. NA com NF e pronto.

Sim da certo porem o rele ainda continuaria ativado se eu inverter no código colocar low e depois high tbm da certo, na minha opinião o código ficaria sem sentido fiz assim e esta funcionando blz. não tem como dar um erro  futuro inverteno no código?

Não inverta o código e sim os terminais do rele

Blz vou deixar como esta se eu adaptar dois leds um vermelho e um verde na saida do rele da problema? um vermelho que ficara ligado direto e um verde que acionara ao passar a tag fiz o teste aqui deu certo mais pode dar problema futuros pois estou usando os fios de acionamento da trava da porta.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço