MFRC522 – Módulo RFID 13,56 MHZ

MFRC522 é um CI leitor/gravador altamente integrado para comunicação sem contato com uma frequência de 13,56 MHz.
O transmissor interno do MFRC522 é capaz de acionar uma antena leitora/gravadora projetada para comunicar-se com cartões e transponders ISO/IEC 14443 A/MIFARE sem necessidade de circuito ativo.
O RFID (Radio-Frequency IDentification) MFRC522 é compatível com os produtos MF1xxS20, MF1xxS70 e MF1xxS50. Suporta comunicação sem contato e usa alta velocidade de transferência MIFARE de até 848 kBd em ambas as direções.

Especificações MFRC522

    • Corrente de trabalho: 13-26mA / DC 3.3V;
    • Ociosa: 10-13mA / 3.3V;
    • Corrente Slep: < 80uA – Pico de corrente: < 30 mA;
    • Freqüência de operação: 13,56MHz;
    • Tipos de cartões suportados: MF1xxS20, MF1xxS70, MF1xxS50, MIFARE UltraLight, MIFARE Pro e MIFARE Desfire;
    • Temperatura de operação: -20 a 80 graus Celsius;
    • Temperatura ambiente: -40 a 85 graus Celsius;
    • Umidade relativa: 5% – 95%;
    • Parâmetro de Interface SPI;
    • Taxa de transferência: 10 Mbit/s;
    • Dimensões: 86 x 54 mm;
    • Peso: 21g.

Interfaces de host fornecidas

    • Interface Periférica Serial (SPI);
    • UART serial (semelhante ao RS232 com níveis de tensão dependentes da fonte de alimentação dos pinos);
    • Interface de barramento I2C.

Recursos MFRC522

    • Circuito analógico altamente integrado para desmodular e decodificar respostas;
    • Drivers de saída em buffer para conectar uma antena com o número mínimo de componentes externos;
    • Suporta ISO/IEC 14443 A/MIFARE;
    • Distância de operação típica no modo de leitura / gravação de até 50 mm, dependendo do tamanho e ajuste da antena;
    • Criptografia suportada MF1xxS20, MF1xxS70 e MF1xxS50 no modo de leitura / gravação;
    • Suporta ISO/IEC 14443 Uma comunicação com velocidade de transferência mais alta, até 848 kBd;
    • Compatibilidade MFIN/MFOUT;
    • Fonte de alimentação interna adicional ao IC do cartão inteligente conectado via MFIN/MFOUT;
    • Interfaces de host suportadas:
      • SPI de até 10 Mbit / s;
      • Interface de barramento I2C de até 400 kBd no modo Rápido, até 3400 kBd no modo de alta velocidade;
      • UART serial RS232 de até 1228,8 kBd, com níveis de tensão dependentes da alimentação de tensão dos pinos.
    • O buffer FIFO lida com o envio e recebimento de 64 bytes;
    • Modos de interrupção flexíveis;
    • Reinicialização total com função de baixa potência;
    • Power-down pelo modo de software;
    • Oscilador interno para conexão com cristal de quartzo de 27,12 MHz;
    • Fonte de alimentação de 2,5 V a 3,3 V;
    • Coprocessador CRC;
    • Pinos de I/O programáveis;
    • Autoteste interno.
  • Projeto

Será apresentado um projeto bem simples de aplicação do Módulo RFID MFRC522  13,56 MHZ onde após a leitura do cartão correto o LED Verde permanecerá aceso e após a leitura do cartão incorreto o LED Vermelho ficará aceso.

Conexão do MFRC522 no Arduino

Existem diferenças de conexão do módulo MFRC522 aos modelos de Arduino a que devemos cuidadosamente observar para o correto funcionamento do dispositivo. Então é só  fazer a  ligação ao seu respectivo Arduino conforme a tabela.


MFRC522 TABELA DE CONEXÃO

Esquema de Conexão MFRC522 – Projeto

Código

Primeiramente, devemos carregar a biblioteca MFRC522 na IDE Arduino, em seguida teremos que identificar o código do cartão, utilizando um exemplo da própria biblioteca.

RC522_INFO

Carregue esse código no Arduino, abra o Monitor Serial, aproxime o cartão de que deseja obter a identificação e espere alguns segundos até parar a análise. Então, feito isso, copie este código e guarde para utilizar no projeto.

MFRC522 LEITURA CARTAO

Em seguida, faça as alterações e carregue o código.

Identificacao do cartao RC522

#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
#define LED_R 5//LED Vermelho
#define LED_G 6 //LED Verde
char st[20];
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
{
  // Inicia a serial
  Serial.begin(9600);
  // Inicia  SPI bus
  SPI.begin();
  // Inicia MFRC522
  mfrc522.PCD_Init();
  Serial.println("Aproxime o seu cartao/TAG do leitor");
  Serial.println();
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);

  digitalWrite (LED_G, HIGH);
  digitalWrite (LED_R, HIGH);
}
void loop()
{
  //digitalWrite (LED_G, LOW);
  //digitalWrite (LED_R, HIGH);
  // Busca novos cartões
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  // Seleciona um catão a ser lido
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  //Mostra ID na serial
  Serial.print("ID 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) == "B5 8B D1 B5" )) //UID CARTÃO
  {
    Serial.println("Acesso autorizado !");
    Serial.println();
    digitalWrite (LED_G, HIGH);
    digitalWrite (LED_R, LOW);
    delay(2000);//Delay apagar LED Verde
  }
 
  else if ((conteudo.substring(1) != "B5 8B D1 B5" )) //UID CARTÃO
  {
    digitalWrite (LED_G, LOW);
    digitalWrite (LED_R, HIGH);
    delay(2000);//Delay apagar LED Vermelho
  }

  digitalWrite (LED_G, HIGH);
  digitalWrite (LED_R, HIGH);

}

Com o código carregado, percebemos inicialmente que os dois LEDs estão  acesos. Ao aproximar o cartão, o LED vermelho apaga, permanecendo o verde aceso, informando que é o cartão correto. E ao aproximarmos o chaveiro, o LED verde apaga, permanecendo o vermelho, informando que este não está cadastrado.

MFRC522 - PROJETO

Onde comprar?

#VLADCONTROL SHOP