Como gravar dados no cartão RFID

Como gravar dados no cartão RFID

Neste post vamos mostrar como gravar dados no Cartão RFID Programável Mifare 13,56Mhz, que pode ser usado juntamente com o leitor de cartões MFRC522, presente no Kit Módulo Leitor RFID MFRC522 . Esse cartão possui 1KB de memória, dos quais 768 bytes estão livres para gravação de dados pelo usuário.

Gravação tag RFID

Aqui no blog nós já apresentamos um projeto com leitor RFID, no post Controle de Acesso usando leitor RFID com Arduino, onde usamos o leitor para validar (ou não), a UID de um cartão.

ATENÇÃO! O programa de exemplo deste post apaga os dados do seu cartão RFID, portanto faça testes apenas com um cartão apropriado, evitando aproximar do leitor cartões de Banco, cartões de crédito, bilhete único, etc, que utilizem tecnologia RFID.

Ligação do módulo RFID ao Arduino

O esquema de ligação do módulo RFID ao Arduino é o mesmo do post sobre o Controle de Acesso, com a inclusão de dois botões para seleção das funções de leitura e gravação. Conecte o módulo conforme a imagem abaixo, observando que a alimentação dele é de 3,3V. Vamos utilizar um display LCD para mostrar as mensagens de leitura e gravação.

O push-button marcado com a letra L ativa o modo de leitura do cartão, e o push-button com a letra G ativa o modo de gravação.

Programa leitura e gravação cartão RFID

Colocamos em um mesmo programa as funções de leitura e gravação, e vamos selecionar cada uma delas com um push-button, conforme descrito acima. Para gravação dos dados no cartão, vamos utilizar o Serial Monitor como interface de entrada.

Carregue o seguinte programa no Arduino, que utiliza a biblioteca MFRC522, disponível neste link. Descompacte a pasta e coloque-a dentro da pasta LIBRARIES da IDE do Arduino.

//Programa: Leitura e gravacao de cartoes RFID
//Autor: FILIPEFLOP

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

//Pinos Reset e SS módulo MFRC522
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);

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

#define pino_botao_le A2
#define pino_botao_gr A3

MFRC522::MIFARE_Key key;

void setup()
{
  pinMode(pino_botao_le, INPUT);
  pinMode(pino_botao_gr, INPUT);
  Serial.begin(9600);   //Inicia a serial
  SPI.begin();      //Inicia  SPI bus
  mfrc522.PCD_Init();   //Inicia MFRC522

  //Inicializa o LCD 16x2
  lcd.begin(16, 2);
  mensageminicial();

  //Prepara chave - padrao de fabrica = FFFFFFFFFFFFh
  for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;
}

void loop()
{
  //Verifica se o botao modo leitura foi pressionado
  int modo_le = digitalRead(pino_botao_le);
  if (modo_le != 0)
  {
    lcd.clear();
    Serial.println("Modo leitura selecionado");
    lcd.setCursor(2, 0);
    lcd.print("Modo leitura");
    lcd.setCursor(3, 1);
    lcd.print("selecionado");
    while (digitalRead(pino_botao_le) == 1) {}
    delay(3000);
    modo_leitura();
  }
  //Verifica se o botao modo gravacao foi pressionado
  int modo_gr = digitalRead(pino_botao_gr);
  if (modo_gr != 0)
  {
    lcd.clear();
    Serial.println("Modo gravacao selecionado");
    lcd.setCursor(2, 0);
    lcd.print("Modo gravacao");
    lcd.setCursor(3, 1);
    lcd.print("selecionado");
    while (digitalRead(pino_botao_gr) == 1) {}
    delay(3000);
    modo_gravacao();
  }
}
void mensageminicial()
{
  Serial.println("\nSelecione o modo leitura ou gravacao...");
  Serial.println();
  lcd.clear();
  lcd.print("Selecione o modo");
  lcd.setCursor(0, 1);
  lcd.print("leitura/gravacao");
}

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

void modo_leitura()
{
  mensagem_inicial_cartao();
  //Aguarda cartao
  while ( ! mfrc522.PICC_IsNewCardPresent())
  {
    delay(100);
  }
  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();

  //Obtem os dados do setor 1, bloco 4 = Nome
  byte sector         = 1;
  byte blockAddr      = 4;
  byte trailerBlock   = 7;
  byte status;
  byte buffer[18];
  byte size = sizeof(buffer);

  //Autenticacao usando chave A
  status=mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,
                                  trailerBlock, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }
  status = mfrc522.MIFARE_Read(blockAddr, buffer, &size);
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("MIFARE_Read() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
  }
  //Mostra os dados do nome no Serial Monitor e LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  for (byte i = 1; i < 16; i++)
  {
    Serial.print(char(buffer[i]));
    lcd.write(char(buffer[i]));
  }
  Serial.println();

  //Obtem os dados do setor 0, bloco 1 = Sobrenome
  sector         = 0;
  blockAddr      = 1;
  trailerBlock   = 3;

  //Autenticacao usando chave A
  status=mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,
                                  trailerBlock, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK)
  {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }
  status = mfrc522.MIFARE_Read(blockAddr, buffer, &size);
  if (status != MFRC522::STATUS_OK)
  {
    Serial.print(F("MIFARE_Read() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
  }
  //Mostra os dados do sobrenome no Serial Monitor e LCD
  lcd.setCursor(0, 1);
  for (byte i = 0; i < 16; i++)
  {
    Serial.print(char(buffer[i]));
    lcd.write(char(buffer[i]));
  }
  Serial.println();

  // Halt PICC
  mfrc522.PICC_HaltA();
  // Stop encryption on PCD
  mfrc522.PCD_StopCrypto1();
  delay(3000);
  mensageminicial();
}

void modo_gravacao()
{
  mensagem_inicial_cartao();
  //Aguarda cartao
  while ( ! mfrc522.PICC_IsNewCardPresent()) {
    delay(100);
  }
  if ( ! mfrc522.PICC_ReadCardSerial())    return;

  //Mostra UID na serial
  Serial.print(F("UID do Cartao: "));    //Dump UID
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  //Mostra o tipo do cartao
  Serial.print(F("\nTipo do PICC: "));
  byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
  Serial.println(mfrc522.PICC_GetTypeName(piccType));

  byte buffer[34];
  byte block;
  byte status, len;

  Serial.setTimeout(20000L) ;
  Serial.println(F("Digite o sobrenome,em seguida o caractere #"));
  lcd.clear();
  lcd.print("Digite o sobreno");
  lcd.setCursor(0, 1);
  lcd.print("me + #");
  len = Serial.readBytesUntil('#', (char *) buffer, 30) ;
  for (byte i = len; i < 30; i++) buffer[i] = ' ';

  block = 1;
  //Serial.println(F("Autenticacao usando chave A..."));
  status=mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,
                                    block, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  //Grava no bloco 1
  status = mfrc522.MIFARE_Write(block, buffer, 16);
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("MIFARE_Write() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  block = 2;
  //Serial.println(F("Autenticacao usando chave A..."));
  status=mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,
                                    block, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  //Grava no bloco 2
  status = mfrc522.MIFARE_Write(block, &buffer[16], 16);
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("MIFARE_Write() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  Serial.println(F("Digite o nome, em seguida o caractere #"));
  lcd.clear();
  lcd.print("Digite o nome e");
  lcd.setCursor(0, 1);
  lcd.print("em seguida #");
  len = Serial.readBytesUntil('#', (char *) buffer, 20) ;
  for (byte i = len; i < 20; i++) buffer[i] = ' ';

  block = 4;
  //Serial.println(F("Autenticacao usando chave A..."));
  status=mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,
                                    block, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  //Grava no bloco 4
  status = mfrc522.MIFARE_Write(block, buffer, 16);
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("MIFARE_Write() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  block = 5;
  //Serial.println(F("Authenticating using key A..."));
  status=mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A,
                                    block, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    return;
  }

  //Grava no bloco 5
  status = mfrc522.MIFARE_Write(block, &buffer[16], 16);
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("MIFARE_Write() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    //return;
  }
  else
  {
    Serial.println(F("Dados gravados com sucesso!"));
    lcd.clear();
    lcd.print("Gravacao OK!");
  }

  mfrc522.PICC_HaltA(); // Halt PICC
  mfrc522.PCD_StopCrypto1();  // Stop encryption on PCD
  delay(5000);
  mensageminicial();
}

A seleção será feita pelo push-button, que vai mostrar por alguns segundos a mensagem “Modo gravação selecionado” ou “Modo leitura selecionado”.

Primeiramente selecione o modo de gravação (push-button direito) e mantenha o cartão RFID próximo ao leitor até o final da gravação. Digite o sobrenome do usuário no serial monitor, terminando com o caractere #:

Serial_Monitor_Gravacao_Sobrenome

Repita o mesmo processo, agora para o nome:

Serial_Monitor_Gravacao_Nome

Se a gravação ocorreu normalmente, a mensagem “Gravação OK!” será exibida no display.

Leitura dos dados do cartão

Para efetuar a leitura, pressione o push-button e selecione o “Modo de leitura”. Depois disso, simplesmente aproxime o cartão do leitor, e os dados serão mostrados no display LCD e também no serial monitor.

<imagem – dados LCD>

Você também pode utilizar o programa de exemplo DumpInfo, presente na biblioteca, para verificar como os dados foram gravados no cartão. Na IDE do Arduino, carregue o programa no menu Arquivo => Exemplos => MFRC522 => Dumpinfo

Aproxime o cartão do leitor, e será feito um dump das informações do cartão, com os dados sendo mostrados no serial monitor. Nesse dump você pode conferir os dados que foram gravados no cartão, especificamente nos setores 0 e 1:

Serial_Monitor_Dump_String

No cartão os dados são gravados no formato hexadecimal, e posteriormente convertidos em caracteres e mostrados no display com os comandos lcd.write(char(<dados>)). Você pode relacionar os códigos em hexadecimal com os caracteres utilizando uma tabela ascii, como fizemos na imagem acima, mostrando que o número 46 corresponde ao F, o 69 ao I, o 6C ao L e assim por diante.

Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota aos posts (estrelas no início ou no final do artigo) e visite nossa loja FILIPEFLOP !

5
Como gravar dados no cartão RFID
55 votos, 4.71 classificação média (94% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

92 Comentários

  1. Luiz - 22 de junho de 2017

    Alguém teve problema com a leitura como no meu caso q só está lendo o cartão,mas o chaveiro não? Sabe resolver esse problema ou é problema no rfid mesmo?

  2. ft7 - 6 de junho de 2017

    Quantas vezes eu posso gravar / apagar informações do cartão? Apenas uma? várias?

  3. HAILTON - 2 de junho de 2017

    Ola Felipe gostaria de saber se é possivel em vez de gravar o nome cono no ex: gravar um contador tipo (for),para uns 3 acesso ,apartir dai não ter mais acesso ?

  4. Rafael Coelho - 29 de maio de 2017

    Alguém já conseguiu passar esse código pra Python?

  5. LEandro - 19 de maio de 2017

    Estou com este erro, alguém saberia solucionar?

    invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

  6. Osvaldo MAD - 26 de abril de 2017

    Estou com dois problemas.

    1 – Nao aparece os dados no LCD. Ele acende e ate regula a intensidade de luz mas nao traz informação nenhuma

    2 – O maior problema é que ao colocar no modo leitura nao aparece o nome no serial monitor, somente o UID.

    Peguei um cartão ja gravado em outro sistema onde ao colocar no modulo leitura (neste sistema) aparecia um nome e o UID porem ao gravar o cartao novamente por este sistema ao refazer a leitura somente aparece o UID.

    Alguem tem uma solução pra este problema.
    Fico no aguardo.
    Obrigado

  7. Fernando - 4 de março de 2017

    Boa noite, fiz o projeto e funcionou 100%, tenho uma duvida, como consigo cadastrar novas TAG’s ? , para a liberação de acesso ?

  8. Altair - 21 de fevereiro de 2017

    Amigo, eu consigo escrever em uma TAG ou chip rfid???

  9. julio silva - 1 de fevereiro de 2017

    teria como mudar a Chave padrão de fabrica?ou isso é impossível?
    “//Prepara chave – padrao de fabrica = FFFFFFFFFFFFh
    for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;"

  10. Bruno - 28 de dezembro de 2016

    Vc pode me mandar só o código que grava amigo? Muito grato… Gmail:bruno.barela.fernandes@gmail.com

  11. Israel - 24 de novembro de 2016

    Boa tarde, gostaria de saber se tem como colocar os valores nos dados da tag através de uma variável do próprio programa e não por meio do teclado, pois quero armazenar na tag os valores de um sinal vindo do pino de entrada analógica do controlador.

  12. Gabriel - 23 de novembro de 2016

    Muito bacana o tutorial! Só estou com duas dúvidas:
    1) A chave que é preparada na linha 33 do código tem a ver com a Chave A que é colocada no Bloco 1 do cartão?
    2) Teria como ler a Chave A de um cartão, armazena-la e defini-la como a Chave A de outro cartão?


    Linha 32 e 33::
    //Prepara chave – padrao de fabrica = FFFFFFFFFFFFh
    for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;

    Obrigado!

  13. Italo Josep - 27 de outubro de 2016

    Tenho o rfid com um cartão , e um chaveiro.
    Só o chaveiro lê os cartão não, passo ele e no serial não mostra nada, cheguei a comprar novos cartões e deu a mesma coisa. Seria isso um erro na placa rfid

  14. Silvio - 25 de outubro de 2016

    Muito bom! Justamente o que eu precisava para o meu projeto, obrigado!

  15. Cladinei Bohn - 24 de outubro de 2016

    agora estou com o seguinte problema abaixo
    depois de gravar o nome ele da a mensagem: MIFARE_Write() failed: A MIFARE PICC responded with NAK.

    Modo gravacao selecionado
    Aproxime o seu cartao do leitor…
    UID do Cartao: 36 DF 4C 54
    Tipo do PICC: MIFARE 1KB
    Digite o sobrenome,em seguida o caractere #
    Digite o nome, em seguida o caractere #
    MIFARE_Write() failed: A MIFARE PICC responded with NAK.

    Selecione o modo leitura ou gravacao…

    Modo leitura selecionado
    Aproxime o seu cartao do leitor…
    UID da tag : 36 DF 4C 54

  16. Cladinei Bohn - 23 de outubro de 2016

    depois que eu digito o sobrenome e envio da esse erro da ultima linha

    Selecione o modo leitura ou gravacao…

    Modo gravacao selecionado
    Aproxime o seu cartao do leitor…
    UID do Cartao: 36 DF 4C 54
    Tipo do PICC: MIFARE 1KB
    Digite o sobrenome,em seguida o caractere #
    PCD_Authenticate() failed: Timeout in communication.

  17. João Vitor - 6 de outubro de 2016

    Olá.
    Tenho em mãos um leitor Mifare para cartões porém o software que uso me transmite informações somente o Código Hexadecimal invertido de acordo com as duplas do Mifare_1K. Para realizar a tarefa que tenho preciso dos códigos decimais de acordo com o código Hexadecimal normal, porém não consigo isso. Se tiveres alguma dica, um software diferente que eu possa usar ou algum comando eu ficaria agradecido, eu uso o programa ICTransfer, é bem limitado mas é tudo que tenho. Obrigado desde ja

  18. Leandro Rodrigues - 18 de agosto de 2016

    Boa tarde

    Gostaria de saber se é possivel armazenar as tags que entraram o ou a ultima tags utilizada.

  19. Cleber Caetano - 5 de agosto de 2016

    Tenho um projeto onde uso cartão master para cadastrar os UID, apos cadastrados permite o acesso. Porem o UID é imutável!!! Gostaria de saber se poderia lhe enviar meu programa e altera-lo para que o cadastro seja de uma variável diferente do UID. O projeto é pra um Hotel, porta dos quartos.

  20. Alberto - 23 de julho de 2016

    Olá! Poderia me explicar a seguinte linha: “status = mfrc522.MIFARE_Write(block, &buffer[16], 16);” ?

    O que está sendo escrito neste bloco? Percebi que, após escrever os dados em um dado bloco, é escrito algo em outro bloco.

    Agradeço.

  21. Moises Campos - 14 de julho de 2016

    esse projeto aqui esta com erro. vcs pode mim ajudar?

    Arduino: 1.6.9 (Windows 10), Placa:”Arduino/Genuino Uno”

    C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino: In function ‘void modo_leitura()':

    CONTROLE_DE_ACESSO_RFID.ino:124: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:130: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:153: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:160: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino: In function ‘void modo_gravacao()':

    CONTROLE_DE_ACESSO_RFID.ino:198: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::PICC_Type’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:388:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::PICC_GetTypeName(MFRC522::PICC_Type)’ [-fpermissive]

    const __FlashStringHelper *PICC_GetTypeName(PICC_Type type);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:219: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:227: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:237: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:245: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:263: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:271: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:281: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    CONTROLE_DE_ACESSO_RFID.ino:289: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    In file included from C:\Users\MOISES\Desktop\Arduino\PROGRAMA LEITURA E GRAVAÇÃO CARTÃO RFID\CONTROLE DE ACESSO RFID\CONTROLE_DE_ACESSO_RFID.ino\CONTROLE_DE_ACESSO_RFID.ino.ino:5:0:

    C:\Users\MOISES\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    Foram encontradas múltiplas bibliotecas para “MFRC522.h”
    Usado: C:\Users\MOISES\Documents\Arduino\libraries\MFRC522
    Não usado: C:\arduino\arduino-1.6.9\libraries\MFRC522
    exit status 1
    invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Este relatório teria mais informações com
    “Mostrar a saida detalhada durante a compilação”
    opção pode ser ativada em “Arquivo -> Preferências”

  22. Carlos - 7 de julho de 2016

    Amigo teria com criptografar o cartão rfid para evitar clonagem ? Se tem como fazer ?

  23. Giuliano - 1 de julho de 2016

    Olá, modifiquei um pouco o código, e fiz que cada vez que eu coloco uma Tag cadastrada acione um relé e mostre no LCD. Mais o problema é que as Tags que não foram cadastradas também acionam o relé. Como o programa pode cadastrar infinitas Tags surgiu esse seguinte problema problema, como eu posso colocar um controle para acionar o relé só nas Tags que foram cadastradas? Obrigado

  24. Mateus Sponchiado - 22 de junho de 2016

    Pessoal com problema com o GetStatusCodeName.

    Essa é uma função antiga não mais suportada pelo criador da biblioteca. Baixem uma biblioteca antiga ou arrumem o código que dá certo.

    Abraços.

  25. Alexandre - 16 de junho de 2016

    No caso de perder um card ou chaveiro e possível deletar usando o mesmo esquema sem precisar entrar na serial usando essas configurações?

  26. Joan - 16 de maio de 2016

    Olá, tenho duas duvida sobre o código acima, a primeira é se é possível alterar o valor do UID da TAG;
    E a segunda duvida é como faço para copiar apenas parte da informação da UID, por exemplo UID: A9 C6 83 4A, e quero copiar cada um dos valores para uma variável, A = A9, B = C6, C = 83, D = 4A.
    como faço isso?

    Obrigado

    • darKnight - 25 de maio de 2016

      Primeiro – não. É por isso que se chama UID, unique ID… Cada cartão tem um ID que é inalterável.
      Segunda – Sim, você pode copiar o UID do cartão para outro bloco, estes dados estão no bloco 0 do setor 0

  27. Mateus - 10 de maio de 2016

    No meu teste apareceu o seguinte erro:
    Modo leitura selecionado
    Aproxime o seu cartao do leitor…
    UID da tag : A5 11 6A 02
    PCD_Authenticate() failed: Error in communication.

    Gravando aparece o seguinte:
    Digite o sobrenome,em seguida o caractere #
    MIFARE_Write() failed: A MIFARE PICC responded with NAK.

    Existe algo de errado com minha tag?

  28. Giordano Souza - 2 de maio de 2016

    Olá, existe alguma forma de controlar o range da antena, eu precisaria que o mesmo fosse consideravelmente menor. Obrigado

  29. Roni Augusto Gass - 24 de abril de 2016

    Boa tarde, para mim aparece este erro.

    Arduino: 1.6.8 (Windows 7), Placa:”Arduino/Genuino Uno”

    D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino: In function ‘void modo_leitura()':

    grava__o_rfield:124: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:130: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:153: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:160: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino: In function ‘void modo_gravacao()':

    grava__o_rfield:198: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::PICC_Type’ [-fpermissive]

    Serial.println(mfrc522.PICC_GetTypeName(piccType));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:388:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::PICC_GetTypeName(MFRC522::PICC_Type)’ [-fpermissive]

    static const __FlashStringHelper *PICC_GetTypeName(PICC_Type type);

    ^

    grava__o_rfield:219: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:227: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:237: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:245: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:263: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:271: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:281: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    grava__o_rfield:289: error: invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    Serial.println(mfrc522.GetStatusCodeName(status));

    ^

    In file included from D:\Documento\Arduino\grava__o_rfield\grava__o_rfield.ino:5:0:

    D:\Documento\Arduino\libraries\rfid-master/MFRC522.h:384:36: error: initializing argument 1 of ‘static const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    static const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    exit status 1
    invalid conversion from ‘byte {aka unsigned char}’ to ‘MFRC522::StatusCode’ [-fpermissive]

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  30. angelo pavani - 9 de abril de 2016

    possui alguma maneira de quando o cartão não for reconhecido aparecer escrito , acesso negado ?

  31. João Gustavo - 2 de abril de 2016

    Tem alguma dica de como fazer isto em um pic?

  32. angelo - 29 de março de 2016

    estou tendo um pequeno problema, quando começo a gravar , nao aparece em meu computador aquela caixa para eu gravar os dados do cartao , como nome, sobrenome …
    vocês sabem qual pode ser o erro?

  33. Bruna - 26 de março de 2016

    Eu consigo fazer um jumper nas entradas PWM? que eu fiz este projeto mas estou querendo colocar um servomotor e n tem entradas disponíveis mais..

  34. angelo pavani - 24 de março de 2016

    estou tendo um problema , sempre que vou passar a minha programação para o ARDUINO da este erro

    Opções de compilação alteradas, recompilando tudo

    O sketch usa 12.678 bytes (39%) de espaço de armazenamento para programas. O máximo são 32.256 bytes.
    Variáveis globais usam 1.359 bytes (66%) de memória dinâmica, deixando 689 bytes para variáveis locais. O máximo são 2.048 bytes.

    sabe como resolver?

    • Adilson Thomsen - 24 de março de 2016

      Boa tarde Angelo,

      Esta não é uma mensagem de erro, são mensagens normais que a IDE do Arduino mostra no final da compilação, com informações sobre o consumo de memória e variáveis.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  35. Liradal - 24 de fevereiro de 2016

    Pessoal, também tive os mesmos problemas.O erro estava na biblioteca do MRC522.Segue o link para a biblioteca do MRC522 que funciona sem erros o Sketch acima.Só instalar e funciona direitinho sem modificações no Arduino UNO e IDE 1.6.7
    Bom trabalho e estudos a todos.
    http://makecourse.weebly.com/week10segment1.html

  36. Gustavo - 12 de fevereiro de 2016

    O mesmo codigo funciona no arduino nano?

  37. guilherme - 11 de fevereiro de 2016

    Boa tarde,

    Sou sindico de um condominio, temos essas tags no portão, , a empresa que fez a instalação me cobra 15 reais para fazer uma cópia da tag, com esse esquema consigo efetuar as cópias ?

  38. Bruna - 23 de janeiro de 2016

    Quem tiver com problemas pra aparecer as informações no LCD, conecte na sequencia ao arduino: GND,5V,GND,7,GND,6, 0,0,0,0,5,4,3,2, 3.3V, GND (SEM TRIMPOT com iluminação do lcd nao tão alta)
    E mude no programa tb LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
    RFID ao arduino ficou: 3,3v, 9,GND,12,13,10

  39. Luis - 11 de janeiro de 2016

    Lindo proyecto pero me da estos errores

    sketch_jan11f:234: error: stray ‘\302′ in program

    sketch_jan11f:234: error: stray ‘\240′ in program

    In file included from C:\Users\Luis\Documents\Arduino\sketch_jan11f\sketch_jan11f.ino:5:0:

    C:\Users\Luis\Documents\Arduino\libraries\MFRC522/MFRC522.h:384:29: error: initializing argument 1 of ‘const __FlashStringHelper* MFRC522::GetStatusCodeName(MFRC522::StatusCode)’ [-fpermissive]

    const __FlashStringHelper *GetStatusCodeName(StatusCode code);

    ^

    exit status 1
    stray ‘\302′ in program

    saludos

    • Bruna - 23 de janeiro de 2016

      O meu tbm…tentei de td pra ver se n tinha caractere a mais ou a menos mas n encontrei solução..

    • Nuno - 27 de janeiro de 2016

      Também não estou a conseguir. O problema é o mesmo.

    • Nuno - 27 de janeiro de 2016

      Penso que descobri a resposta.
      Experimente mudar o tipo da variável “status”.

      No código acima a variável “status” encontra-se presente nas funções:
      -void modo_gravacao();
      -void modo_leitura();

      Em ambas as funções a variável “status” é do tipo “byte”. Experimente mudar para o tipo “MFRC522::StatusCode”.

      E em relação à variável “piccType” que também é do tipo “byte” (presente na função “void modo_gravacao()”) mude para “MFRC522::PICC_Type”.

      É apenas uma sugestão. Desta forma consegui compilar sem erros mas ainda não tive a oportunidade de testar, logo não tenho garantias que dê certo.

    • Samuel Rios Carvalho - 19 de fevereiro de 2016

      Conforme o Nuno falou, pra resolver o problema do piccType, substitua a linha

      byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);

      por

      MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);

      compilou aqui corretamente e funcinou a leitura do tipo de cartão.

  40. Paulo - 18 de dezembro de 2015

    Bom dia, eu consigo usar esse cartão em um dispositivo Android?

  41. edieno - 6 de dezembro de 2015

    boa noite! comprei um kit com rfid e tenho umas duvidas;o cartao e o chaveiro já vêm com informação? e o leitor funciona solto mesmo ou só se soldar os conectores que vêm junto com o uno.
    pois não estou conseguindo fazer a leitura.

    agradeço desde já.

  42. ADNO - 28 de novembro de 2015

    Gostaria muito de uma ajuda! Queria poder gravar as IDs no cartao sd e sempre quando encostar a tag na RFID o arduino pesquisar no cartao sd, se estiver la, ele autentica se nao ele nega o acesso!

  43. Adriano Antunes - 25 de novembro de 2015

    Olá Boa Tarde,

    Preciso muito de sua ajuda, como faço para gravar números com casas decimais na memoria do cartão. Consigo gravar números inteiros tipo 1,2,3,4,5, usando mfrc522.MIFARE_Decrement(valueBlockA, value), mas gravar com casas decimais não tipo 1.50, 2.50, 3.50 não conseguir. Fico muito agradecido se puder me ajudar.

  44. allysson - 13 de novembro de 2015

    Ola Boa tarde… gostaria de saber quantos cartões posso gravar com esse código?
    Parabéns pelo blog e origado..

  45. Bruna - 13 de novembro de 2015

    o potenciômetro usado é de 1k ou 10k?

  46. Glauco - 12 de novembro de 2015

    Sabe o limite de vezes que se pode inscrever nesse cartão RFID?

  47. Michela - 9 de novembro de 2015

    Oá,

    Uma dúvida! Vi que o dado é gravado no Bloco 1…e depois é necessário autenticar no Bloco2…
    Dado gravado no Bloco 4 e depois autenticação no Bloco 5.

    Se eu for gravar um novo dado no Bloco 5, tenho que autenticar no Bloco 6 depois ?

    Poderia me explicar porque preciso autenticar no bloco seguinte ?

    Obrigada.

  48. Jonathan Gonçalves - 9 de novembro de 2015

    Boa noite, estou precisando de uma ajuda urgente comprei um RFID-RC522 na loja FLIPEFLOP, porem, não estou conseguindo ler as tags, para adicionar no meu projeto, na verdade acho que ha um problema com o RC522 pois ele não esta lendo as tags, compilei o código que lê as tags e o mesmo apenas apresenta as frases iniciais como aproxime o cartão do leitor, e não apresenta a parte do UID do cartão. Esto precisando muito da ajuda de vcs obrigado.

    • Michela - 9 de novembro de 2015

      Olá! Você soldou os contatos ?

      Estava com problema também e só vi o leitor funcionar após soldar os contatos.

      Abraço.

      • Jonathan Gonçalves - 11 de novembro de 2015

        Sim Michela já soldei os contatos e verifiquei os mesmos, verifiquei toda fiação e o programa e não achei nenhum erro, o pior de tudo e que a loja FILIPEFLOP, não está retornado meus emails e isto e um trabalho de faculdade, solicitei informações para mandar o produto de volta para analise e eles não me respondem e cada vez o prazo de entregar o trabalho fica mais curto. Já tinha realizado compras na loja e aconselhava aos amigos e colegas pela qualidade dos produtos, pelo rápido prazo de entrega e o atendimento, mas após este episodio não aconselho mais a ninguém, se possível desaconselho a pessoa.

        Se outra pessoa tiver uma sugestão ou conselho pra me dar, pois se depender da boa vontade da loja perco um semestre na faculdade .
        Obrigado

        • Bruna - 23 de janeiro de 2016

          1o – veja se a luz dele acende..se acender, ele n está queimado nem nd..
          2o – verifique se conectou certo os cabos…n sei se vc sabe eletronica mto bem entao digo que poderia ser algum erro de endtendimento da protoboard
          3o – ligue o arduino, instale o software dele, abra o monitor serial dando CTRL+SHIFT+M e logo ele dara a mensagem para aproximar o cartao…
          se vc n chegou ate esta parte de ler essa msg no monitor serial, ha coisas erradas conectadas msm..se vc chegou mas o cartao nem o chaveiro fazem leitura do UID o provável é que ele esteja realmente com defeito

  49. Rafael Medeiros de Oliveira - 5 de novembro de 2015

    boa noite , estou tendo dificuldades para baixar a biblioteca RFID.H , gostaria de alguma dica ou ajuda .

    desde já agradeço a atenção de todos.

    Obrigado

  50. Bruno Oliveira - 22 de outubro de 2015

    Boa tarde.

    Qual a distancia maxima para o reconhecimento pelo RFID?

  51. Bruna - 2 de outubro de 2015

    Como eu faria pra q essa distância aumentasse? é pela frequência do módulo RFID?

  52. Sousa - 2 de outubro de 2015

    Vc pode fazer um codigo com controle de acesso sem os botões e q acione o relé.

  53. Bruna - 1 de outubro de 2015

    Qual a distância mínima para reconhecimento do cartão?

Deixe uma resposta