Arduino RFID tutorial

Home/Arduino Projects/Arduino RFID tutorial

Arduino RFID tutorial

Are you interested in an Arduino RFID tutorial? In this video we take a look at the RFID RC522 reader and writer, and we learn how to use it with Arduino. We also use an OLED display to read the UID of the RFID tags. Let’s start!

Arduino RFID tutorial

Today we are going to build a very interesting project. For the first time we are going to use RFID tags with Arduino.

I have built a simple project which reads the Unique ID (UID) of each RFID tag we place close to the reader and displays it on this OLED display.

If the UID of the tag is equal to a predefined value that is stored in Arduino’s memory, then in the display we are going to see the “Unlocked” message.  If the Unique ID of the card is not equal to the predefined value, the Unlock message won’t appear. Cool isn’t it?

How RFIDs work?

Each RFID tag, has a small chip inside. If I place a flashlight under this RFID card you can see the small chip and the coil that surrounds it.

This chip does not have a battery in order to get power. It receives power from the reader, this device, wirelessly using this big coil. The reader can read an RFID card like this one from a distance up to 20mm! The same chip exists in this type of RFID tags as well.

Each RFID tag has a unique number that identifies it. That’s the UID that we display on the OLED display. Except from this UID, each tag can store data. In this type of cards we can store up to 1K of data! Impressive isn’t it?

We won’t use this functionality today but will do so in a future video. Today, all we are interested in is to identify a specific card by its UID. The cost of the RFID reader and these two RFID cards is around $4. Let’s see how to build this project.

The parts needed in order to build this project are these:


Arduino Uno:

RFID module:

OLED display:



Power Bank:

Full disclosure: All of the links above are affiliate links. I get a small percentage of each sale they generate. Thank you for your support!

Arduino RFID tutorial – The connection

The connection with the Arduino Uno board is very simple. At first let’s connect the power of both the reader and the display. Be careful, the RFID reader must be connected to the 3.3V output of the Arduino Uno or it will be destroyed.

Since the display can also work at 3.3V we connect the Vcc from both modules to the breadboards positive rail. This rail is then connected to 3.3V output of the Arduino Uno. Next we connect both GNDs to the breadboard GND rail. Then we connect the GND rail of the breadboard to Arduino GND.

The RFID reader module uses the SPI interface in order to communicate with Arduino. So we are going to use the hardware SPI pins of the Arduino UNO.

RST pin goes to digital pin 9. IRQ pin stays unconnected. MISO pin goes to digital pin 12. MOSI pin goes to digital pin 11. SCK pin goes to digital pin 13 and lastly SDA pin goes to digital pin 10. That’s it. The RFID reader is connected.

We now have to connect the OLED display with Arduino using the I2C interface. So, the SCL pin of the display goes to Analog Pin 5 and SDA pin of the display to Analog Pin 4. If we now power up the project and place an RFID card close to the reader we can see that the project is working fine! Now it’s time to take a look at the code of the project.

Arduino RFID tutorial – The code

In order the project code to compile we need to include some libraries.

First of all we need the MFRC522 Rfid library. In order to install it, go to Sketch -> Include Libraries -> Manage libraries. Search for MFRC522 and install it.

We also need the Adafruit SSD1306 library and the Adafruit GFX library for the display. Install both libraries with the same procedure.

The Adafruit SSD1306 library needs a small modification. Go to the Arduino -> Libraries folder, open the Adafruit SSD1306 folder and edit the Adafruit_SSD1306.h library. Comment line 70 and uncomment line 69. Our display has a resolution of 128×64, that’s what we are defining here.

Now we are ready to take a quick look at the code.

At first we declare the value of the RFID tag that we want the Arduino to recognize. It is an array of integers.

Next we initialize the RFID reader and the display. After this, in the loop function we check for a tag on the reader every 100 ms.

If there is a tag on the reader we read its UID and we print it on the display. Next we compare the UID of the tag we just read, with the value that is stored in the code variable. If the values are the same, we display the UNLOCK message, else we don’t display this message.

Of course you can modify this code in order to store more than 1 UID values in order the project to recognize more RFID tags. This is just an example. As always you can find the code of the project in a link in the description of the video.

Arduino RFID tutorial – The code

As you can see with a very low cost we can add an RFID reader to our projects. We can easily build a security system with a reader like this one or build more fun projects. My main intention is to build some interactive games for kids using this RFID reader and a lot of RFID tags. In a future video we will also try to write and read data from an RFID tag. At this point I would love to hear your opinion about this RFID card reader. Do you plan to use it in any of your projects? Please post any comments or ideas in that comments section below, thanks!










Never miss a video: Subscribe to


One Comment

  1. Gabrielle March 31, 2017 at 11:34 pm - Reply

    Thanks I’ve been looking for this!

Leave A Comment