Arduino – RFID čítačka RC522 – XI

Arduino – RFID čítačka RC522 – XI
Follow me

Marv Marvelous

http://www.grafovision.sk
Follow me

Máme tu ďalší komponent, ktorého modul RC522 si rozoberieme. Podľa datasheetu MFRC522.

MODUL: RC522 (Milfare)

KATEGÓRIA: RFID bezkontaktná čítačka/zapis

FREKVENCIA:  13.56Mhz IC by MIFARE

KOMUNIKÁCIA: SPI zbernica do 10Mbit/s

 

ČO JE TO RC522 modul

Ja osobne veľmi okrajovo budem rozpisovať o RFID Nakoľko ovládam princíp, veľmi som sa o RFID nezaujímal, ale niečo som si naštudoval. Číta/zapisuje na karty RFID typu ISO/IEC 14443A  až do vzdialenosti 50mm a komunikácia prebieha po zbernici SPI, aj keď dokáže podľa datasheetu aj IIC aj RS232 komunikáciu. V tomto prípade bude treba si poradiť sám a napájkovať vývody, ak potrebujete innú zbernicu. Tu je obrázok

PINOUT pre jednotivé arduino

* Signal        Pin                 Pin                          Pin
*  Arduino   Uno      Arduino Mega      MFRC522 board
* ————————————————————
* Reset            9                   5                     RST
* SPI SS         10                 53                     SS
* SPI MOSI   11                  51                  MOSI
* SPI MISO   12                 50                   MISO
* SPI SCK      13                 52                    SCK
Ardino-RFID-RC522

Ardino-RFID-RC522

Pripojenie modulu RC522 na Arduino

Otestujeme si modul pomocou Arduina. Schému zapojenia najdete nižšie.

Schéma prepojenia Arduino a RC522

arduino-rc522

prepojenie arduino a RC522

 

Knižnica pre RFID : RFID.h – knižnica

Všetko mfrc522 knižnica a priklady

Program je priloženy “Čitanie RFID karty”  : RC-522 Arduino kod

Načíta číslo RFID karty a vypiše na seriovom porte “Card detected:” a číslo.

 

Program RC522

/*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 <SPI.h>
#include <RFID.h>
#define SDA_DIO 10
#define RESET_DIO 9
RFID RC522(SDA_DIO, RESET_DIO);
void setup()
{
Serial.begin(9600);
SPI.begin();
RC522.init();
Serial.println(“inn:”);
}
void loop()
{
byte i;
if (RC522.isCard())
{
RC522.readCardSerial();
Serial.println(“Card detected:”);
/* Output the serial number to the UART */
for(i = 0; i <= 4; i++)
{
Serial.print(RC522.serNum[i],HEX);
Serial.print(” “);
}
Serial.println();
delay(1000);
}
}

Náčítanie karty

Card detected:
80 9A D4 E5 2B
Card detected:
80 9A D4 E5 2B
Card detected:
64 5 6E 93 9C
Card detected:
88 4 4C 4B 8B
Card detected:
88 4 5D B1 60
Card detected:
88 4 5C B1 61
Card detected:
88 4 5B B1 66

 

Program na zistenie verzie Firmware:

#include <MFRC522.h>
#include <SPI.h>

#define SAD 10

#define RST 9

MFRC522 nfc(SAD, RST);

void setup() {
SPI.begin();
Serial.begin(115200);

Serial.println(“Looking for MFRC522.”);
nfc.begin(); uint8_t version = nfc.getFirmwareVersion();
if (! version) {
Serial.print(“Didn’t find MFRC522 board.”);
while(1); //halt
} Serial.print(“Found chip MFRC522 “);Serial.print(“Firmware ver. 0x”);
Serial.print(version, HEX);Serial.println(“.”);
if (nfc.digitalSelfTestPass()) {
Serial.print(“Digital self test by MFRC522 passed.”);
} else {
Serial.print(“Digital self test by MFRC522 failed.”);
}} void loop() {}

 

Seriový port odpovedá:

Looking for MFRC522.
Found chip MFRC522 Firmware ver. 0x91.
Digital self test by MFRC522 passed.

Pozri napríklad:

Projekty:

Marv Marvelous

Zanechať odpoveď