loading

Hai there in this tutorial i'm going to help you with interfacing RFID-RC522 with Arduino Mega 2560 to read the RFID and Display the Data on the Serial Monitor. so you can able to extend it on your own


You Need:

  1. Arduino Mega or Arduino Uno (I used Mega)
  2. RFID-RC522
  3. 7 male to female jumper wires
  4. Some ID cards (optional)
  5. RFID Library (Must , Link Below)

Then Download the Below library and Add it to your Arduino IDE by clicking Sketch->Include Library-> Add .Zip Library in file menu

Step 1: Physical Connection Detail

simply connect the arduino with RFID-RC522 as shown in the above image .

Warning : supply only 3.3V otherwise module will burn out

Pin Out for Uno/Nano and Mega

RC522 MODULE Uno/Nano MEGA
SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/A N/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V

Step 2: Simple Code to Read and Print RFID Tags Value

Copy the Below code then upload it on your Arduino

/*
PINOUT: RC522 MODULE Uno/Nano MEGA SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/A N/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V */ /* Include the standard Arduino SPI library */ #include <SPI.h> /* Include the RFID library */ #include <RFID.h>

/* Define the DIO used for the SDA (SS) and RST (reset) pins. */ #define SDA_DIO 9 #define RESET_DIO 8 /* Create an instance of the RFID library */ RFID RC522(SDA_DIO, RESET_DIO);

void setup() { Serial.begin(9600); /* Enable the SPI interface */ SPI.begin(); /* Initialise the RFID reader */ RC522.init(); }

void loop() { /* Has a card been detected? */ if (RC522.isCard()) { /* If so then get its serial number */ RC522.readCardSerial(); Serial.println("Card detected:"); for(int i=0;i<5;i++) { Serial.print(RC522.serNum[i],DEC); //Serial.print(RC522.serNum[i],HEX); //to print card detail in Hexa Decimal format } Serial.println(); Serial.println(); } delay(1000); }



Step 3: Simple Code for Super Market Application Using RFID

Copy the Below code then upload it on your Arduino. in the below the total purchase value will incremented when reading the card first time then decremented when reading the same for second time...


/*

PINOUT:

RC522 MODULE Uno/Nano MEGA SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/A N/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V

*

* Include the standard Arduino SPI library */ #include /* Include the RFID library */ #include

/* Define the DIO used for the SDA (SS) and RST (reset) pins. */ #define SDA_DIO 9 #define RESET_DIO 8 int productname[5]={228,18,37,75,24}; int product[5]={100,120,230,125,70}; int token[5]={0,0,0,0,0}; int Total; /* Create an instance of the RFID library */ RFID RC522(SDA_DIO, RESET_DIO);

void setup() { Serial.begin(9600); /* Enable the SPI interface */ SPI.begin(); /* Initialise the RFID reader */ RC522.init(); }

void loop() { /* Temporary loop counter */ byte i=0; byte j=0; byte k=0; int ID;

/* Has a card been detected? */ if (RC522.isCard()) { /* If so then get its serial number */ RC522.readCardSerial(); Serial.print(RC522.serNum[i],DEC);

//Serial.println("Card detected:");

/* Output the serial number to the UART */ ID=RC522.serNum[0]; //Serial.print(ID); Serial.println(" "); for(i=0;i<5;i++) { if(productname[i]==ID) { Serial.println("Total Purchase"); if(token[i]==0) { Total=Total+product[i]; token[i]=1; } else { Total=Total-product[i]; token[i]=0; } Serial.println(Total); break; } else if(i==5) { Serial.println("Access Denied"); break; } } Serial.println(); Serial.println(); } delay(1000); }

Step 4: Conclusion.,

I would like to thank you for reading my tutorial. I would appreciate if you found it useful and drop a like (favorite) or ask me anything as it keeps me motivated to do these instructables. feel free to ask any questions that you need to know...

Happy Coding Arduino...

<p>Hi, How can I pass the RFID serial to a variable to use it in an &quot; IF STATEMENT &quot;??</p>
<p>use array to store value like below ..</p><p>//its not complete code its just an example</p><p>int productname[5]={0,0,0,0,0};</p><p>void setup()</p><p>{</p><p>}</p><p>void loop()</p><p>{</p><p>for(int i=0;i&lt;5;i++)</p><p> {</p><p> productname[i]=RC522.serNum[i];</p><p> }</p><p>}</p>
<p>or create a integer as below</p><p>int value;</p><p>value=RC522.serNum[1];</p>
<p>Hi,</p><p>I thnik I have problem with my RFID librairies.<br><br>I can read the RC522 FW bur I can't detected the card.<br><br>And i don't see the RFID in orange on my including function.</p><p>Can you help me ?</p>
<p>sure will you able to send me screenshot of the code and clear photo of your connection . so i may able to help you easily...</p>
Sure,<br><br>Thank's for you'r help.
<p>brother it seems the library is not getting initialized for you because of version incompatibility. just try &quot;Arduino 1.6.11 IDE&quot; and let me know if it works. it seems everything is good on your side :-( </p>
<p>I try to used the V1.6.11 of IDE, no result.</p><p>I'm trying to re-associated all the way with other pin on my arduino Mega.<br>50=MISO<br>51=MOSI<br>52=SCK<br>53=SS (SDA) an on other test on the 21pin (SDA)<br>5=RS<br>But it's the same problem.<br><br>I have reset to zero my computer, no result again.</p>
<p>OMG honestly i can't able to figure it out whats going on...it may be problem with hardware i think but i'm not sure sorry dude</p>
<p>No problem;<br><br>I will try to make better connections and I will try other cards. I order a shield PN532 and one arduino UNO to see what happened <br><br>I'll keep you informed</p>
<p>Sure bro Gud luck on that...</p>
<p>Sir, I did all the steps but Card is not getting detected</p>
<p>Will you able to send me the screenshot and your connection photo.... ???</p>
<p>yes I will.</p>
<p>mail me everything at joshstaivin@gmail.com with Subject as Arduino</p>
<p>I have sent kindly check it</p>
<p>woooh !!! ho gya ... Thanks ... I had Arduino problem... I changed the board and it worked</p>
<p>Well done bro...</p>
<p>It works. Thank you boy :)</p>
<p>Awesome work brother. glad you make it perfectly... :-D</p>
<p>Awesome :)</p>
<p>Tanx Bro... </p>
<p>It's work perfectly for me</p>
<p>nice work dude. I'm Glad you made it ... :-D :-D</p>
<p>Thanks for this tuto</p><p>Do you know if RC522 can Read / Write NFC Tag ?</p>
<p>I think we can only read data and cant write anything...</p>
<p>Ok thanks </p><p>And do you know if when you buy NFC Tag, is there a unique uuid inside ?</p>
Can we connect two or more RFID in a single Arduino board<br>
<p>yes you can but i did not tried it before but its possible i think by using master slave connection in Arduino Mega....</p>
<p>Thanks the system works. </p><p>But having a hard time reading the ID cards and NFC tags, not much prob with the key tags. Any way to increase the range?</p>
<p>Both NFC and ID cards works fine for me... </p><p>what range did you mean brother tag ID value ?? if yes try changing loop value as for(int i=0;i&lt;10;i++) instead of i&lt;5 . . . </p>
<p>Not the length of the value, the rfid reading range. For example you have to make the RC522 touch to the NFC to scan, but it can read it from about 2 cm distance in miguelbalboa's code. If you can fix this, your code will be perfect bro.<br></p>
<p>Actually the range that you mean, it doesn't depend on the code. it only depends on the hardware you use. </p><p>try suitable module other than RFID-RC522 if any available in the market...</p>
<p>Cool. I really need to try out using RFID readers with some of my future Arduino projects. I think that they could be really useful.</p>
<p>Tanx dude ask me if you need anything... </p>

About This Instructable

12,131views

25favorites

More by Johnson Selva:Simple Supermarket App Using RFID RC-522 and Arduino Mega Save Arduino Sensor Data to MYsql Using Processing Interfacing RFID-RC522 With Arduino MEGA a Simple Sketch 
Add instructable to: