0% found this document useful (0 votes)
0 views

Arduino Programs

This document provides an example sketch for reading data from RFID tags using the MFRC522 library with Arduino. It includes setup instructions, pin layout configurations, and code snippets for initializing the RFID reader and handling access control based on scanned tags. The program outputs the UID and access status of the scanned RFID cards to the serial monitor.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

Arduino Programs

This document provides an example sketch for reading data from RFID tags using the MFRC522 library with Arduino. It includes setup instructions, pin layout configurations, and code snippets for initializing the RFID reader and handling access control based on scanned tags. The program outputs the UID and access status of the scanned RFID cards to the serial monitor.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

/*

*
----------------------------------------------------------------------------------------------------
----------------

* Example sketch/program showing how to read data from a PICC to serial.

*
----------------------------------------------------------------------------------------------------
----------------

* This is a MFRC522 library example; for further details and other examples see:
https://github.com/miguelbalboa/rfid

* Example sketch/program showing how to read data from a PICC (that is: a RFID
Tag or Card) using a MFRC522 based RFID

* Reader on the Arduino SPI interface.

* When the Arduino and the MFRC522 module are connected (see the pin layout
below), load this sketch into Arduino IDE

* then verify/compile and upload it. To see the output: use Tools, Serial Monitor
of the IDE (hit Ctrl+Shft+M). When

* you present a PICC (that is: a RFID Tag or Card) at reading distance of the
MFRC522 Reader/PCD, the serial output

* will show the ID/UID, type and any data blocks it can read. Note: you may see
"Timeout in communication" messages

* when removing the PICC from reading distance too early.

* If your reader supports it, this sketch/program will read all the PICCs presented
(that is: multiple tag reading).
* So if you stack two or more PICCs on top of each other and present them to the
reader, it will first output all

* details of the first and then the next PICC. Note that this may take some time as
all data blocks are dumped, so

* keep the PICCs at reading distance until complete.

* @license Released into the public domain.

* Typical pin layout used:

* -----------------------------------------------------------------------------------------

* MFRC522 Arduino Arduino Arduino Arduino Arduino

* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro


Micro

* Signal Pin Pin Pin Pin Pin Pin

* -----------------------------------------------------------------------------------------

* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST

* SPI SS SDA(SS) 10 53 D10 10 10

* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16

* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14

* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15

* More pin layouts for other boards can be found here:


https://github.com/miguelbalboa/rfid#pin-layout

*/
#include <SPI.h>

#include <MFRC522.h>

#define RST_PIN 9 // Configurable, see typical pin layout above

#define SS_PIN 10 // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance

void setup() {

Serial.begin(9600); // Initialize serial communications with the


PC

while (!Serial); // Do nothing if no serial port is opened (added for


Arduinos based on ATMEGA32U4)

SPI.begin(); // Init SPI bus

mfrc522.PCD_Init(); // Init MFRC522

delay(4); // Optional delay. Some board do need more


time after init to be ready, see Readme

mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD -


MFRC522 Card Reader details

Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));

void loop() {
// Reset the loop if no new card present on the sensor/reader. This saves the
entire process when idle.

if ( ! mfrc522.PICC_IsNewCardPresent()) {

return;

// Select one of the cards

if ( ! mfrc522.PICC_ReadCardSerial()) {

return;

// Dump debug info about the card; PICC_HaltA() is automatically called

mfrc522.PICC_DumpToSerial(&(mfrc522.uid));

}
Access control

#include <SPI.h>

#include <MFRC522.h>

#define SS_PIN 02

#define RST_PIN 05

byte readCard[4];

String MasterTag = "732351F6";

String tagID = "";

// Create instances

MFRC522 mfrc522(SS_PIN, RST_PIN);

/
******************************************************************
****************************

* setup() function

******************************************************************
****************************/

void setup()

Serial.begin(9600);
SPI.begin();

mfrc522.PCD_Init();

delay(4);

//Show details of PCD - MFRC522 Card Reader

mfrc522.PCD_DumpVersionToSerial();

Serial.println("--------------------------");

Serial.println(" Access Control ");

Serial.println("Scan Your Card>>");

* loop() function

void loop()

//----------------------------------------------------------------------

//Wait until new tag is available

while (getID()) {

if (tagID == MasterTag){

Serial.println(" Access Granted!");

Serial.println("--------------------------");

//You can write any code here like, opening doors,

//switching ON a relay, lighting up an LED etc...


}

else{

Serial.println(" Access Denied!");

Serial.println("--------------------------");

delay(2000);

Serial.println(" Access Control ");

Serial.println("Scan Your Card>>");

//----------------------------------------------------------------------

You might also like