[WAT-AK133]알찬 아두이노 예제 18 RFID Reader

RFID 리더기

본 예제는 알찬 아두이노 키트(입문자용) 의 RFID 리더 예제입니다.
MFRC522 칩을 사용한 리더기로 MIFARE RFID 카드를 읽고 쓸수 있습니다.

 

실험

부품 목록
부품명 아두이노 UNO R3

기능 아두이노 모듈
수량 1
부품 판매처 https://kit128.com/goods/view?no=337

 

부품명 RFID-RC522, 13.56Mhz, ISO/IEC 14443A

기능 RFID Reader
수량 1 EA
부품 판매처 https://kit128.com/goods/view?no=83

 

 

부품명 RFID Tag

기능 Tag
수량 1 EA
부품 판매처 https://kit128.com/goods/view?no=84

 

핀 연결

아래와 같이 RFID 리더기와  Arduino UNO R3 를 연결합니다.

 

RFID 리더기 핀 Arduino UNO R3
SDA 10
SCK 13
MOSI 11
MISO 12
GND GND
RESET 9
3.3V 3.3V

 

소스코드

최신 소스코드는 [파일]=>[예제]=>[WhiteAT UNO] => [Starter] => [18_RFID_DumpInfo] 에 있으며
라이브러리는 아두이노 개발환경  을 참조하세요

/*
 알찬 아두이노 키트(입문자용) 의 
 RFID-RC522로 받은 데이터를 화면에 출력하는 예제

 알찬 아두이노 키트(입문자용): https://kit128.com/goods/view?no=133

 개별 부품
 . WAT-Arduino128 : https://kit128.com/goods/view?no=64
 . RFID-RC522 : https://kit128.com/goods/view?no=83

 연결
 Arduino UNO RFID-RC522
 -------------------------------------------------
 10 SPI SS SDA
 13 SPI SCK SCK
 11 SPI MOSI MOSI
 12 SPI MISO MISO
 9 SPI RESET RST 
*/

#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(115200);
 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?"));
 }
}
결과

RFID CARD ID (예: B5 07 F6 07)를 보여주고 1K에 대한 정보를 출력합니다.

 

제품 구매

[WAT-AK133] 알찬 아두이노 키트(초보자용) 은 https://kit128.com/goods/view?no=133 에서 구매하실 수 있습니다.

.

4 댓글

  1. neophylon 응답

    raspberry pi2 에서는 작동이 안되나요? 핀 배열이 어떻게 되어 야하나요? 연 결하면 빨간 불은 들 어오는데 작동이 되는건 지모르겠네요.

    • 화이트앳 글쓴이응답

      안녕하세요 화이트앳입니다.

      라즈베리파이 에서도 spi 통신으로 사용 가능합니다.
      현재 아두이노 예제만 제공 중이라 라즈베리파이에 대해서는 도와 드리기 힘듭니다.

      감사합니다.

  2. 이수만 응답

    예제 스케치의 주석문 한글도 깨지고.. 태그를 대면 시리얼 모니터 출력도 그래픽 처럼 네모와 철조망, 기억,니은 글씨로 나오는데 뭐가 문제인가요?

    • 화이트앳 글쓴이응답

      안녕하세요
      화이트앳입니다.~

      한글깨지는 것은 인코딩문제입니다.
      상단의 “아두이노 개발환경” 메뉴에 들어가시면 아두이노 개발 환경에 대한 설명이 있습니다.

      시리얼모니터에 깨지는 것은
      보레이트가 맞지 않아 그럴수 있습니다.

      감사합니다.

이수만에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다