Boa noite galera,

adquiri recentemente esse leitor e segui varios tutoriais na net, mas nenhum conseguiu fazer leitura das minhas tags, inclusive pensei que poderia ser problema delas, mas ele foi lida normalmente num outro sistema que tenho. Alguem tem ideia  do que eu possa estar fazendo errado?

OBS: Verifiquei que, ao fazer um upload deveria desconectar a antena e os cabos rx/tx, procedi dessa forma e o problema persistiu, estou com 2 aqui e ambas agem da mesma forma.

Abs

Daniel

Exibições: 2544

Responder esta

Respostas a este tópico

Sei que seu questionamento tem mais de um ano, mas...

Então, tive o mesmo problema. Eu estava usando uma fonte externa pra alimentar o RDM6300, então apenas liguei o GND da fonte ao GND do Arduíno, pronto!

Jeferson,
Nos seus códigos vc converte o valor lido para HEX? O problema do hardware que possuo, está no tratamento dos códigos. É uma placa similar ao Rdm, mas com alguns componentes a mais.

para o meu tcc não preciso converter nao uso o codigo dos proprios cartoes,  no meu caso é para abrir fechaduras acionar reles, na verdade  levar um sinal ao rele e apartir dai eu ecolho uma acao, a parte de conversão eu aindo não fiz pra nenhum dos componentes q tenho, até mesmo tenho uma duvida em fazer a acao de ligar o rele e desligar com o mesmo cartão sem ter que usar string mas to apanhando

segue um exemplo de codigo

#include <SoftwareSerial.h>

// MODIFIQUE AS DUAS VARIAVEIS ABAIXO PARA OS CARTOES DE CONFIGURACAO
#define ADD_TAG_CODE "0500A717C897" // Coloque o ID de uma Tag para adicionar tag na Lista de Acesso
#define DEL_TAG_CODE "210015FABD6A" // Coloque um ID para remover um Token da Lista de Acesso

int rele = 12;

SoftwareSerial rfid = SoftwareSerial(5, 6);
String msg, last, msg2;
String ID ; // String que armazena a Lista de Acesso

void setup()
{
pinMode(rele, OUTPUT); //Set Pin12 as output

Serial.begin(9600);
Serial.println("Serial Ok");

rfid.begin(9600);
Serial.println("RFID Ok");
}

char c;

void loop(){

while(rfid.available()>0){
c=rfid.read();
msg += c;
}
msg=msg.substring(1,13);
if(msg != last){
if (msg.length()>1){
last=msg;
}
if(msg.indexOf(ADD_TAG_CODE)>=0) add();
else if(msg.indexOf(DEL_TAG_CODE)>=0) del();
else if(msg.length()>10) verifica();
}

msg="";

}

void add(){
Serial.println("Passe a Tag que voce deseja liberar o acesso: ");
msg2=msg;
while (msg2 == ADD_TAG_CODE) {
msg="";
while(msg.length()<13){
while(rfid.available()>0){
c=rfid.read();
msg += c;
}
msg2=msg.substring(1,13);
}
}
if(ID.indexOf(msg)>=0) {
Serial.println("Essa Tag ja esta na lista de Acesso.");
msg="";
}
else{
//Serial.print("Card: ");
//Serial.println(msg);
ID += msg;
ID += ",";
// Serial.print("ID: ");
// Serial.println(ID);
Serial.print("Acesso Liberado para a Tag: ");
Serial.println(msg);
msg="";
digitalWrite (9, LOW);
}

}

// Funcao para remocao de Tags da Lista de Acesso
void del(){
msg="";
Serial.println("Passe a Tag que deseja remover da Lista de Acesso!");
while(msg.length()<13){
while(rfid.available()>0){
c=rfid.read();
msg += c;
}
}
msg=msg.substring(1,13);
if(ID.indexOf(msg)>=0){
Serial.println("Tag encontrada e removida da Lista de Acesso: ");
Serial.println(msg);
//ID.replace(card,"");
int pos=ID.indexOf(msg);
msg="";
msg += ID.substring(0,pos);
msg += ID.substring(pos+15,ID.length());
ID="";
ID += msg;
} else {
Serial.println("TAG nao foi localizada, e continua sem acesso.");
}
msg="";
}

// Funcao para validar o acesso
void verifica(){
msg=msg.substring(1,13);
if(ID.indexOf(msg)>=0){
Serial.println("Acesso Liberado!");
// digitalWrite(rele, HIGH); //Turn off relay
//delay(2000);
digitalWrite(rele, LOW); //Turn on relay
// delay(2000);
} else {
Serial.print("Acesso Negado para: ");
Serial.println(msg);
digitalWrite(rele, HIGH); //Turn off relay
}
}

No caso de habilitar e desabilitar com o mesmo cartão, faça um If ligando seu relé por X segundos e após o tempo, coloca seu relé em LOW. No meu caso, os cartões tem o seguinte código: 00010356125 .
E o meu leitor simplesmente me manda uma enxurrada de Y. Eu tô caçando a tempo alguma coisa que faça o sinal chegar corretamente.

opaaa YYYY hummm sera que não esta errado a ligacao do tx, qual o modelo do seu leitor, 

não posso dar tempo tem que ser por passagem imagina uma pessoa passando por uma catraca e depois ela volta pela mesma catraca,

Cara, pior que não viu. Eu já até inverti os fios por desencargo de consiência..

Quando mudo a variável de char para int, a resposta no Serial Monitor é 255255255....

Tô carregando as fotos para voce ver o leitor

os 3 pinos na sequencia onde estao a antena nao precisa usar

começando na sua imagem no pino 1 (começando da esquerda pra direita), 

vai no pino 5 do arduino

o pino 4 do leitor é o negativo e o

pino 5 é o positivo correto

primeira coisa é baixar o datasheet

segundo ver o cabecalho do codigo 

segue foto

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço