Arduino - RFID/NFC
Neste tutorial, vamos aprender a usar RFID/NFC com Arduino. O sistema RFID/NFC tem dois componentes: leitor e tag. Existem dois leitores RFID/NFC populares: o leitor RFID/NFC RC522 e o PN532. Este tutorial foca no leitor RFID/NFC RC522. O leitor RFID/NFC PN532 será apresentado em um próximo tutorial.
O leitor RFID/NFC RC522 (também chamado de Módulo RFID-RC522) pode:
- Ler o UID da tag RFID/NFC
- Alterar o UID da tag RFID/NFC (somente se o UID da tag for gravável)
- Gravar dados na tag RFID/NFC
- Ler dados da tag RFID/NFC
Dentre as capacidades acima, para o Arduino, a leitura do UID é a mais utilizada. Este tutorial foca na leitura do UID da tag RFID/NFC. As outras serão apresentadas nos próximos tutoriais
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo RFID-RC522
Pinagem do Módulo RFID-RC522
O RFID-RC522 tem 8 pinos; alguns deles são pinos comuns, e os outros são compartilhados entre três modos de comunicação: SPI, I2C e UART. Apenas um modo de comunicação pode ser usado por vez. Os pinos são:
- Pino GND: precisa ser conectado ao GND (0V)
- Pino VCC: precisa ser conectado ao VCC (3.3V)
- Pino RST: é um pino de reset e desligamento. Quando este pino fica em nível baixo, o desligamento forçado (hard power-down) é ativado. Na borda de subida, o módulo é reiniciado.
- Pino IRQ: é um pino de interrupção que pode alertar o microcontrolador quando uma tag RFID se aproxima.
- Pino MISO/SCL/TX: funciona como MISO quando a interface SPI está ativada, como SCL quando a interface I2C está ativada e como TX quando a interface UART está ativada.
- Pino MOSI: funciona como MOSI quando a interface SPI está ativada.
- Pino SCK: funciona como SCK quando a interface SPI está ativada
- Pino SS/SDA/RX: funciona como SS quando a interface SPI está ativada, como SDA quando a interface I2C está ativada e como RX quando a interface UART está ativada.

※ Nota:
- A ordem dos pinos pode variar de acordo com o fabricante. SEMPRE use as etiquetas impressas no módulo. A imagem acima mostra a pinagem do módulo do fabricante DIYables.
- Não conecte o pino VCC ao pino 5V. Isso provavelmente vai destruir o seu módulo.
- A biblioteca MFRC522 suporta apenas o modo SPI. Por isso, este tutorial usa apenas a comunicação SPI.
Como o RFID/NFC Funciona
O RFID/NFC tem dois componentes: leitor e tag.
- O leitor é composto por um módulo de radiofrequência e uma antena que gera um campo eletromagnético de alta frequência.
- A tag normalmente é um dispositivo passivo, que não precisa de fonte de alimentação. A tag contém um microchip que armazena e processa informações, e uma antena para receber e transmitir sinais. A tag é usada para armazenar as informações: UID (ID Único) e dados.

Para ler as informações de uma tag, a tag precisa estar bem próxima do leitor (não é necessária linha de visão direta). O processo de leitura:
- O leitor gera um campo eletromagnético que faz os elétrons se moverem pela antena da tag e, em seguida, alimenta o chip.
- O chip dentro da tag então responde enviando as informações solicitadas de volta ao leitor na forma de outro sinal de rádio.
- O leitor detecta o sinal e transforma o sinal em dados
- O Arduino lê os dados do leitor.
Diagrama de Ligação entre o Módulo RFID-RC522 e o Arduino
O Módulo RFID-RC522 foi projetado para operar em nível de 3.3V, enquanto os pinos de saída do Arduino produzem nível de 5V. Então:
- Por segurança, é preciso regular a tensão de 5V dos pinos do Arduino para 3.3V antes de conectar ao Módulo RC522
- Para simplificar e para fins de teste, é possível conectar os pinos do Arduino diretamente ao Módulo RC522, mas isso pode fazer o Arduino parar de funcionar corretamente em alguns casos.
Este tutorial traz dois diagramas de ligação diferentes para os dois casos:
- Diagrama de Ligação entre o RC522 e o Arduino sem regulador de tensão

This image is created using Fritzing. Click to enlarge image
- Diagrama de Ligação entre o RC522 e o Arduino com regulador de tensão

This image is created using Fritzing. Click to enlarge image
Como mostra o diagrama de ligação acima, um par de resistores de 1kOhM e 2kOhm é usado para regular 5V para 3.3V. Não é necessário ajustar a tensão entre o pino do Arduino e o pino MISO do módulo RC522. No entanto, é necessário regular a tensão entre os pinos do Arduino e os pinos SS, SCK, MOSI e RST do módulo RC522.
Tabela de ligação do Módulo RFID/NFC RC522 e o Arduino
| RFID/NFC RC522 | Arduino |
|---|---|
| SS | → 10 |
| SCK | → 13 |
| MOSI | → 11 |
| MISO | → 12 |
| IRQ(não conectado) | |
| GND | → GND |
| RST | → 5 |
| VCC | → 3.3V |
Código RFID/NFC para Arduino
Passos Rápidos
- Vá até o ícone Libraries na barra esquerda da Arduino IDE.
- Pesquise “MFRC522” e encontre a biblioteca da GithubCommunity
- Clique no botão Install para instalar a biblioteca MFRC522.

- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Abra o Serial Monitor
- Aproxime várias tags RFID/NFC do módulo RFID-RC522
- Veja o UID no Serial Monitor