Arduino: RFID RC522

From OnnoWiki
Jump to navigation Jump to search

Sumber: http://arduinolearning.com/code/arduino-uno-rfid-rc522-example.php

Library

# MFRC522 RFID
# Download https://github.com/miguelbalboa/rfid/archive/master.zip
cd ~/Arduino/libraries/
wget http://downloads.arduino.cc/libraries/github.com/miguelbalboa/MFRC522-1.4.0.zip
unzip MFRC522-1.4.0.zip

Rangkaian

Arduino-Uno-r3-with-RFID-RC522 bb.png


Source Code

#include <SPI.h>
#include <MFRC522.h>
 
#define RST_PIN     9       // 
#define SS_PIN      10      //
 
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
    ShowReaderDetails();    // Show details of PCD - MFRC522 Card Reader details
    Serial.println(F("Scan PICC to see UID, type, and data blocks..."));
}
 
void loop() {
    // Look for new cards
    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));
}
 
void ShowReaderDetails() {
    // Get the MFRC522 software version
    byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
    Serial.print(F("MFRC522 Software Version: 0x"));
    Serial.print(v, HEX);
    if (v == 0x91)
        Serial.print(F(" = v1.0"));
    else if (v == 0x92)
        Serial.print(F(" = v2.0"));
    else
        Serial.print(F(" (unknown)"));
    Serial.println("");
    // When 0x00 or 0xFF is returned, communication probably failed
    if ((v == 0x00) || (v == 0xFF)) {
        Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
    }
}



Referensi


Pranala Menarik