반응형

【 아두이노모듈#14 Joystick #1(Keyes SJoys) 조이스틱! 사용해보기

 

 조이스틱은 직관적인 인터페이스 덕분에 활용성이 높으면서도 복잡않아 여러가지 응용 작품을 만들때 자주 사용된다. 

주로 움직임 동작이 필요한 RC카 제어나, 드론, 게임기 제어 등에 사용된다.

따라서 조이스틱의 기본 사용법을 익혀보면 여러가지 프로젝트에 도움이 많이 될 것이다. 

이번 시간은 조이스틱 모듈의 기본적인 동작원리에 대해 다루어 보도록 하겠다.

 

 

▶ 선수 학습 :

      없음.

 조이스틱 모듈 (Keyes SJoys) 세부 스팩

Joystick 핀 배열
Keyes SJoys 상세 스팩

  조이스틱은 사실 포텐셔미터(Potentiometer) 라고 말 할 수 있다.

입력된 전압 값을 기계적인 스틱의 위치 변화(저항값)로 인해 조절하여 출력해주기 때문이다. 

그래서, 아두이노 에서는 아날로그 포트(A0~A6)를 통해서 입력받아야 조이스틱으로서의 기능적인 부분들을 처리 할 수 있다.  왜냐하면, 조이스틱의 경우 상하좌우 끝점의 값(디지털 1, 0)만 사용이 되는 것이 아니라, 조이스틱이 움직이는 중간 값들이 존재하고, 또 그 값들이 필요하기 때문이다.  아래 교육 영상을 보면 무슨 말인지 잘 이해 될 것이다. 

아날로그 출력 값은 조이스틱에 입력된 전압값(5V)을 기준으로 최소값(0V)~최대값(5V)이 출력되는데, 

조이스틱을 움직이지 않은 상태에서는 정 가운데 위치하기 때문에 VRx 와 VRy 출력 값이 약 2.5V가 출력 된다. (스틱의 기계적이 부분이 있어, 약간의 오차가 있을 수 있다)  

즉, 조이스틱 모듈의

1.  VRx 단자 출력값 :  0V(맨아래) ~ 2.5V(가운데)  ~ 5V(맨위)    

2.  VRy 단자 출력값 :  0V(맨왼쪽) ~ 2.5V(가운데)  ~ 5V(맨오른쪽)     

형태로 전압이 출력이 된다.   (물론, 상하좌우나 대각선등의 중간(전압)값도 존재한다.)

 

이런 전압을 아두이노에서 아날로그 포트로(A0~A6) 값을 입력받으면 아날로그 전압값을 디지털 수치값으로 변환시켜주는 ADC(컨버터)로 인해 ,  0V~5V 전압이 0~1023 수치값으로 변환된다. ( analogRead() 함수 사용)  

그러면, 아두이노에서 쉽게 데이터 처리가 가능해지는 것이다. 

 

▶ 실습 목표 :  

 1. [ 조이스틱 모듈의 구조와 동작원리에 대해 이해 할 수 있다.

 2. [ 조이스틱 모듈에서 사용하는 함수에 대해 이해하고 활용할 수 있다.]

 3. [ 기본 회로를 연결하여 조이스틱의 움직임에 따른 데이터 값을 시리얼모니터로 확인 할 수 있다.]

 

▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)
[ 회로1 - SW 를 아날로그 단자에 연결 -영상과 같은 회로]
스위치 눌림에 따라 값이 입력되도록 하였으며,  따라서 눌림의 정도가 일정하지 않음

회로1: SW를 아날로그 입력으로 처리한 회로

 

[ 회로2 - SW 를 디지털 단자 D2에 연결 ]
스위치를 디지털 단자에 연결하여 입력의 HIGH / LOW 신호값 구분을 확실하게 하였음,  단, 1㏀~10㏀ 사이의 풀업저항 연결이 필요함.  

 

 

▶ 실습 절차  : 

 

1.   부품을 준비하여 위와 같은 회로를 구성한다. 

2.   아래 코드를 작성하고 프로그램을 로딩 후 실행시킨다.(혹은 첨부파일 다운)

3.  시리얼 모티터 창을 띄운 후 조이스틱을 움직여 보면서 데이터 값이 올바르게 출력이 되는 지 확인한다.

4.  이렇게 컨트롤 되는 값으로 무엇을 가지고 제어를 해볼지 생각해본다.

 

▶ 프로그램 코드 및 설명 : 

/* 조이스틱의 SW를 아날로그 입력으로 처리한 코드 1 */

/* 조이스틱 컨트롤 해보기  */
/* Rasino.tistory.com   */ 

void setup() {
  Serial.begin(9600);  
}
void loop() {
  // 입력 값을 -100~ 100 사이의 값으로 맵핑(치환)한다
  int Jox = map(analogRead(A0), 0, 1023, -100, 100);
  int Joy = map(analogRead(A1), 0, 1023, -100, 100);
  Serial.print(" Joy X : ");
  Serial.print(Jox);
  Serial.print("    Joy y : ");
  Serial.println(Joy);
  // 조이스틱의 스위치 기능에 대한 정의 
  if (digitalRead(A2)) {
    Serial.println("Off");    
  } else {
    Serial.println("On");
  }
  delay(500);
}

 

/* 조이스틱의 SW를 디지털 입력으로 처리한 코드 2 */

/* 조이스틱 컨트롤 해보기  */
/* Rasino.tistory.com   */ 
#define SW 2

void setup() {
  Serial.begin(9600);  
  pinMode(SW,INPUT);
}
void loop() {
  // 입력 값을 -100~ 100 사이의 값으로 맵핑(치환)한다
  int Jox = map(analogRead(A0), 0, 1023, -100, 100);
  int Joy = map(analogRead(A1), 0, 1023, -100, 100);
  Serial.print(" Joy X : ");
  Serial.print(Jox);
  Serial.print("    Joy y : ");
  Serial.println(Joy);
  // 조이스틱 SW에서는 눌렀을때 0 ,  떼었을 때 1 이 출력되나,
  // 반대가 되도록 '!'로 반전을 시켰음
  Serial.println(!digitalRead(SW)); //  
  delay(300);
}

 

▶ 실행영상 :  

(전체화면 보기로 보세요)
※ 영상에서는 SW를 눌리는 정도에 따라 반응하도록 아날로그 단자로 연결하였으나,  바로 위 코드처럼 디지털 단자 2번에 연결하여 활용하면 확실한 On Off 신호를 활용할 수 있습니다

조이스틱 아두이노 컨트롤

(아래는 유튜브로 시청하기)

https://youtu.be/0QVI3LmfNfc

 

▶ 아두이노 파일다운 :

(다운받아서 압축을 풀어 사용하세요)

(파일 1 : SW를 아날로그 A3번 단자에 연결한 코드 입니다)

Ras_JoyStick_01.zip
0.00MB

(파일 2 : SW를 Digital 2번 단자에 연결한 코드 입니다)

Ras_JoyStick_02_sw.zip
0.00MB

 

반응형
반응형

【 아두이노모듈#13 RFID #3(RC522) 도어락 만들기!

 

 RFID(Radio Frequancy Identification)는 무선 주파수를 이용하여 RFID 태그와 RFID리더간 데이터를 교환하는 장치이다.

 교통카드, 학생신분증 겸용카드, 연구실 및 회사 출입문카드, 구내식당 카드, 마트 등의 상품 진열 및 관리 등등 다방면에서 이용되고 있다. 

 지난 실습에서 아두이노와 RFID모듈을 연결하고 특정 ID카드의 ID를 등록하여 시리얼모니터를 통해 승인 또는 거부 표시를 해보았다.  이번에는 좀더 실제적으로 응용이 가능하도록 서보모터와 LED를 이용해서 도어락 기능을 구현해보려 한다. 선수학습을 잘 따라왔다면, 크게 어렵지않고 더욱 흥미가 생길 것이다. 

 

▶ 선수 학습 :

      1. [아두이노 기초#30] 서보모터 제어하기 응용 ☜ (클릭)

      2. [아두이노 센서#3] TMP36 온도센서 #1 (RGB LED 부분 참조) ☜ (클릭)

      3. [아두이노 모듈#11] RFID(RC522) 사용하기 #1 ☜ (클릭)

      4. [아두이노 모듈#12] RFID(RC522) 사용하기 #2 ☜ (클릭)

 

 RFID 모듈 (RC522) 세부 스팩

   세부스팩은 위 선수학습 내용을 참조.

 

▶ 실습 목표 :  

 1. [ RFID 구동원리, 통신 방식에 대해 이해할 수 있다. 

 2. [ SPI통신과 회로 연결에 대해 이해 할 수 있다.]

 3. [ 카드별 고유넘버(UID)를 알아 낼 수 있다.]

 4. [ 특정 UID를 지정하여 승인 및 거부 처리를 할 수 있다.]

 5. [ '서보 모터'와 , 'RGB LED'를 적용하여 RFID모듈 제어를 할 수 있다.] 

 

▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)

RFID Rc522모듈을 활용한 도어락 회로도

▶ 실습 절차  : 

 

1.   부품을 준비하여 위와 같은 회로를 구성한다. 

2.   아두이노IDE에서 MFRC522 라이브러리를 검색후 설치한다. 

     ( 라이브러리 설치는 위 선수학습내용 참조)

3.  첨부된 아두이노 파일을 다운 받아 코드를 실행시킨다. 

4.  문으로 사용될 미이어쳐나 모형 등을 준비한다.  (RGB LED가 없으면 일반 LED를 사용)

5. 동작확인이 되면(실제 도어 등에 적용할 방법에 대해 고민해본다, 릴레이 사용 등등)

 

▶ 프로그램 코드 및 설명 : 

/* RFID 도어락 만들어 보기 */

#include <SPI.h>
#
include <MFRC522.h>
#
define SS_PIN 10    // spi 통신을 위한 SS(chip select)핀 설정
#define RST_PIN 9    // 리셋 핀 설정 
MFRC522 
rfid(SS_PIN, RST_PIN); // 'rfid' 이름으로 클래스 객체 선언

#include <Servo.h>    // 서보 라이브러리를 지정

#define servoPin 8     // 서보 모터핀을 지정

Servo servo;      // 서보 라이브러리 변수를 선언

int pos=0;      // 현재 각도를 저장할 변수를 지정한다

int RLED=7;     // 빨간색 LED단자를 아두이노 7번과 연결

int GLED=6;     // 초록색 LED단자를 아두이노 6번과 연결

 

void setup ( ) {  

  pinMode(RLED, OUTPUT);      // RED LED를 출력으로 지정

  pinMode(GLED, OUTPUT);      // GREEN LED를 출력으로 지정

  servo.attach(servoPin);     // 서보모터 핀을 설정한다

  servo.write(0);                // 서보모터 0도 위치로 초기화

  Serial.begin(9600);
  
SPI.begin();           // SPI 통신 시작

  rfid.PCD_Init();       // RFID(MFRC522) 초기화

  Serial.println("Approximate your card to the reader...");
  
Serial.println();  

}

void loop ( )  {

 // 새카드 접촉이 있을 때만 다음 단계로 넘어감

  if ( ! rfid.PICC_IsNewCardPresent())
  {

      return;

  }

 // 카드 읽힘이 제대로 되면 다음으로 넘어감
  if ( ! rfid.PICC_ReadCardSerial())

  {

      return;

  }

  // 현재 접촉 되는 카드 타입을 읽어와 모니터에 표시함  

  Serial.print("UID tag :");
  
String content= "";
  
byte letter;    
  
for (byte i = 0; i < rfid.uid.size; i++) 
  
{   
     
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
     
Serial.print(rfid.uid.uidByte[i], HEX);
     
content.concat(String(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "));
     
content.concat(String(rfid.uid.uidByte[i], HEX));
  
}

  Serial.println();
  
Serial.print("Message : ");
  
content.toUpperCase();
  // UID값이 아래 값과 같으면 승인 처리
  if (content.substring(1) == "85 7C FB D1") // 승인 하고자하는 UID 기록

  {

   // 인증이 되면 Green LED와 함께 서보모터를 작동시킨다.
    Serial.println("Authorized access");
   
Serial.println();

    digitalWrite(GLED,HIGH);

    servo.write(180);   // 서보모터의 각도를 변경한다     

    delay(3000);  // 서보 모터의 각도가 변하는 것을 기다려 준다

    servo.write(0);     // 시간지연 후 문을 닫는다 

    digitalWrite(GLED,LOW);   // 시간지연 후 LED 끈다

  }

 

   // 승인 목록에 없는 UID 처리는

   // 서보모터의 작동 없이 Red LED만 켜고 끈다

  else   {

    Serial.println(" Access denied");
    digitalWrite(RLED,HIGH);

    delay(3000);

    digitalWrite(RLED,LOW);

   }

}

 

▶ 실행영상 :  

(전체화면 보기로 보세요)

RFID 도어락 만들어 보기

(아래는 유튜브로 시청하기)

https://youtu.be/6nBu0obCx5Q

▶ 아두이노 파일다운 :

(다운받아서 압축을 풀어 사용하세요)

 

ko_arduino_code_Servo_LED.zip
0.00MB

 

 

 

 컴파일 에러 발생시 해결 방법 참고 :  아래 최신글을 참고해 보세요.

rasino.tistory.com/321

 

【 MFRC522 RFID with Nano 33 iot #1】 아두이노 나노(33 IoT) 보드에 RFID 카드 모듈 사용해 보기!( feat. RFID

【 MFRC522 RFID with Nano 33 iot #1】 아두이노 나노(33 IoT) 보드에 RFID 카드 모듈 사용해 보기! ( feat. RFID 컴파일 오류 있는 경우도 보세요! ) Nano 33 every(또는 33 iot 등)에서 RFID를 사용해보려 하..

rasino.tistory.com

 

반응형
반응형

【 아두이노모듈#12 RFID (RC522) 사용하기 #2

 

 RFID(Radio Frequancy Identification)는 무선 주파수를 이용하여 RFID 태그와 RFID리더간 데이터를 교환하는 장치이다.

 교통카드, 학생신분증 겸용카드, 연구실 및 회사 출입문카드, 구내식당 카드, 마트 등의 상품 진열 및 관리 등등 다방면에서 이용되고 있다. 

 지난 실습에서 아두이노와 연결하는 기본회로 만들어 보았는데, 시리얼모니터를 통해 특정 ID카드의 고유값(UID)을 확인한 승인 처리 및 거부 처리 해보는 실습을 진행하려고 한다. 

 

▶ 선수 학습 :

      1. [아두이노 모듈#11] RFID(RC522) 사용하기 #1 ☜ (클릭)

 

 RFID 모듈 (RC522) 세부 스팩

※ RFID 모듈 개요 

 - RC522모듈은 RFID 범주에 속하는 NFC통신 방식을 사용한다. NFC는 13.56MHz의 주파수 대역을 사용하고 10cm 이내 가까운 거리의 비첩촉 통신을 뜻한다.

 - RC522의 모듈 구성은 RFID 데이터를 잃고 기록 할 수 있는 본체가 있으며, RFID 고유데이터(UID) 코드가 저장되어 있는 카드키와 열쇠고리형키가 포함 되어 있다. 

 - 본 실습에서는 아두이노와 통신하기 위해 SPI통신 방식으로 연결하여 사용한다.

 

▶ 실습 목표 :  

 1. [ RFID 구동원리, 통신 방식에 대해 이해할 수 있다. 

 2. [ SPI통신과 회로 연결에 대해 이해 할 수 있다.]

 3. [ 카드별 고유넘버(UID)를 알아 낼 수 있다.]

 4. [ 특정 UID를 지정하여 승인 및 거부 처리를 할 수 있다.]

 

▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)

RFID RC522 모듈 연결 회로도

▶ 실습 절차  : 

 

1.   부품을 준비하여 위와 같은 회로를 구성한다. 

2.   아두이노IDE에서 MFRC522 라이브러리를 검색후 설치한다. 
  (메뉴 : 스케치 》 라이브러리 포함하기 》 라이브러리 관리 》 라이브러리 메니저 )
  

3.  첨부된 아두이노 파일을 다운 받아 코드를 실행시킨다. 

 

4. 프로그램을 동작시키고 승인처리할 카드키 값을 읽어 프로그램에 적용한다.

5. 승인 및 거부 처리가 잘 되는지 확인한다. 

 

▶ 프로그램 코드 및 설명 : 

/* ID 카드의 UID값에 따라 승인 또는 거부 처리하기 */

#include <SPI.h>
#
include <MFRC522.h>
#
define SS_PIN 10    // spi 통신을 위한 SS(chip select)핀 설정
#define RST_PIN 9    // 리셋 핀 설정 
MFRC522 
rfid(SS_PIN, RST_PIN); // 'rfid' 이름으로 클래스 객체 선언

void setup ( ) {

  Serial.begin(9600);
  
SPI.begin();           // SPI 통신 시작

  rfid.PCD_Init();       // RFID(MFRC522) 초기화

  Serial.println("Approximate your card to the reader...");
 
Serial.println();

  }

}

void loop ( )  {

 // 새카드 접촉이 있을 때만 다음 단계로 넘어감

  if ( ! rfid.PICC_IsNewCardPresent())
    
return;

 // 카드 읽힘이 제대로 되면 다음으로 넘어감
  if ( ! rfid.PICC_ReadCardSerial())

    return;

  // 현재 접촉 되는 카드 타입을 읽어와 모니터에 표시함  

  Serial.print("UID tag :");
 
String content= "";
 
byte letter;   
 
for (byte i = 0; i < rfid.uid.size; i++)
 
{  
    
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
    
Serial.print(rfid.uid.uidByte[i], HEX);
    
content.concat(String(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "));
    
content.concat(String(rfid.uid.uidByte[i], HEX));
 
}

  Serial.println();
 
Serial.print("Message : ");
 
content.toUpperCase();
  // UID값이 아래 값과 같으면 승인 처리
  if (content.substring(1) == "85 7C FB D1") // 승인 하고자하는 UID 기록
 {
   
Serial.println("Authorized access");
   
Serial.println();
   
delay(3000);      // 카드 접촉 및 연속체크 시간에 대한 딜레이 주기
  }
 // UID값이 다르다면 엑세스 거부 처리
  else   {
   
Serial.println(" Access denied");
   
delay(3000);     // 카드 접촉 및 연속체크 시간에 대한 딜레이 주기
  }

}

 

▶ 실행영상 :  

(전체화면 보기로 보세요)

(아래는 유튜브로 시청하기)

https://youtu.be/I9uYJHTNAzA

 

▶ 아두이노 파일다운 :

(다운받아서 압축을 풀어 사용하세요)

RFID_Access_Denaied_ok.zip
0.00MB

 

 

 컴파일 에러 발생시 해결 방법 참고 :  아래 최신글을 참고해 보세요.

rasino.tistory.com/321

 

【 MFRC522 RFID with Nano 33 iot #1】 아두이노 나노(33 IoT) 보드에 RFID 카드 모듈 사용해 보기!( feat. RFID

【 MFRC522 RFID with Nano 33 iot #1】 아두이노 나노(33 IoT) 보드에 RFID 카드 모듈 사용해 보기! ( feat. RFID 컴파일 오류 있는 경우도 보세요! ) Nano 33 every(또는 33 iot 등)에서 RFID를 사용해보려 하..

rasino.tistory.com

 

반응형
반응형

【 아두이노모듈#11RFID (RC522) 사용하기 #1

 

 RFID(Radio Frequancy Identification)는 무선 주파수를 이용하여 RFID 태그와 RFID리더간 데이터를 교환하는 장치이다.

 교통카드, 학생신분증 겸용카드, 연구실 및 회사 출입문카드, 구내식당 카드, 마트 등의 상품 진열 및 관리 등등 다방면에서 이용되고 있다. 

 이번 실습에서는 아두이노와 연결하는 기본회로를 구성하고 시리얼 모니터를 통해 카드별로 UID를 확인해보는 실습을 진행하려고 한다. 

 

▶ 선수 학습 :

   없음.

 

RFID 모듈 (RC522) 세부 스팩

 RFID 모듈 개요 

 - RC522모듈은 RFID 범주에 속하는 NFC통신 방식을 사용한다. NFC는 13.56MHz의 주파수 대역을 사용하고 10cm 이내 가까운 거리의 비첩촉 통신을 뜻한다.

 - RC522의 모듈 구성은 RFID 데이터를 읽고 기록 할 수 있는 본체가 있으며, RFID 고유데이터(UID) 코드가 저장되어 있는 카드키와 열쇠고리형키가 포함 되어 있다. 

 - 본 실습에서는 아두이노와 통신하기 위해 SPI통신 방식으로 연결하여 사용한다.

 

▶ 실습 목표 :  

 1. [ RFID 구동원리, 통신 방식에 대해 이해할 수 있다. 

 2. [ SPI통신과 회로 연결에 대해 이해 할 수 있다.]

 3. [ 카드별 고유넘버(UID)를 알아 낼 수 있다.]

 

▶ 실습 회로도면 :
  (이미지 클릭하면 확대 가능)

RFID 기본 회로도

 

▶ 실습 절차  : 

 

1.   부품을 준비하여 위와 같은 회로를 구성한다. 

2.   아두이노IDE에서 MFRC522 라이브러리를 검색후 설치한다.
  (메뉴 : 스케치 》 라이브러리 포함하기 》 라이브러리 관리 》 라이브러리 메니저 )
  

3.  설치된 라이브러리가 제공하는 예제파일을 열어 실행시킨다. (ReadNUD : UID 스캔 프로그램)

  (메뉴 : 파일 》 예제 》 MFRC522 》 ReadNUD 클릭)  

라이브러리 설치후 제공되는 예제파일 실행

4. 프로그램을 동작시키고 카드키를 RC522본체에 접촉시킨 후 시리얼 모니터창을 통해 UID값을 확인한다.

 

▶ 프로그램 코드 및 설명 : 

/* RC522.h 라이브러리에 포함된 ReadNUID 예제 참조 */

#include <SPI.h>
#
include <MFRC522.h>
#
define SS_PIN 10    // spi 통신을 위한 SS(chip select)핀 설정
#define RST_PIN 9    // 리셋 핀 설정
MFRC522
rfid(SS_PIN, RST_PIN); // 'rfid' 이름으로 클래스 객체 선언
MFRC522::MIFARE_Key key;
byte
nuidPICC[4];   // 카드 ID들을 저장(비교)하기 위한 배열(변수)선언

void setup ( ) {

  Serial.begin(9600);
 
SPI.begin();           // SPI 통신 시작

  rfid.PCD_Init();       // RFID(MFRC522) 초기화

  // ID값 초기화 

  for (byte i = 0; i < 6; i++) {

    key.keyByte[i] = 0xFF;

  }

// MIFARE 타입의 카드키 종류들만 인식됨을 표시

  Serial.println(F("This code scan the MIFARE Classsic NUID."));

  Serial.print(F("Using the following key:"));

  printHex(key.keyByte, MFRC522::MF_KEY_SIZE);

}

void loop ( )  {

 // 새카드 접촉이 있을 때만 다음 단계로 넘어감

  if ( ! rfid.PICC_IsNewCardPresent())
   
return;

 // 카드 읽힘이 제대로 되면 다음으로 넘어감
  if ( ! rfid.PICC_ReadCardSerial())

    return;

  // 현재 접촉 되는 카드 타입을 읽어와 모니터에 표시함

  Serial.print(F("PICC type: "));

  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);

  Serial.println(rfid.PICC_GetTypeName(piccType));

  // MIFARE 방식의 카드인지 확인 루틴

  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && 

    piccType != MFRC522::PICC_TYPE_MIFARE_1K &&

    piccType != MFRC522::PICC_TYPE_MIFARE_4K) {

    Serial.println(F("Your tag is not of type MIFARE Classic."));

    return;

  }

 // 이전 인식된 카드와 다른, 혹은 새카드가 인식되면

  if (rfid.uid.uidByte[0] != nuidPICC[0] ||

    rfid.uid.uidByte[1] != nuidPICC[1] ||

    rfid.uid.uidByte[2] != nuidPICC[2] ||

    rfid.uid.uidByte[3] != nuidPICC[3] ) {

    Serial.println(F("A new card has been detected."));

 // 고유아이디(UID) 값을 저장한다.

    for (byte i = 0; i < 4; i++) {

      nuidPICC[i] = rfid.uid.uidByte[i];

    }

 // 그 UID 값을 16진값으로 출력 한다.

    Serial.println(F("The NUID tag is:"));

    Serial.print(F("In hex: "));

    printHex(rfid.uid.uidByte, rfid.uid.size);

    Serial.println();

 // 그 UID 값을 10진값으로 출력 한다.

    Serial.print(F("In dec: "));

    printDec(rfid.uid.uidByte, rfid.uid.size);

    Serial.println();

  }

 // 연속으로 동일한 카드를 접촉하면 다른 처리 없이

 // '이미 인식된 카드'라는 메세지를 출력한다.

  else Serial.println(F("Card read previously."));

  rfid.PICC_HaltA();

  rfid.PCD_StopCrypto1();

}

// 16진 값으로 변환 해주는 함수 정의

void printHex(byte *buffer, byte bufferSize) {

  for (byte i = 0; i < bufferSize; i++) {

    Serial.print(buffer[i] < 0x10 ? " 0" : " ");

    Serial.print(buffer[i], HEX);

  }

}

// 10진 값으로 변환 해주는 함수 정의

void printDec(byte *buffer, byte bufferSize) {

  for (byte i = 0; i < bufferSize; i++) {

    Serial.print(buffer[i] < 0x10 ? " 0" : " ");

    Serial.print(buffer[i], DEC);

  }

}

 

▶ 실행영상 :  

(전체화면 보기로 보세요)

(아래는 유튜브로 시청하기)

https://youtu.be/uwi1Uk9U64w

RFID 회로 조립과 최초 동작확인

 

▶ 아두이노 파일다운 :

(다운받아서 압축을 풀어 사용하세요)

01_ReadNUID.zip
0.00MB

 

 

컴파일 에러 발생시 해결 방법 참고 :  아래 최신글을 참고해 보세요.

rasino.tistory.com/321

 

【 MFRC522 RFID with Nano 33 iot #1】 아두이노 나노(33 IoT) 보드에 RFID 카드 모듈 사용해 보기!( feat. RFID

【 MFRC522 RFID with Nano 33 iot #1】 아두이노 나노(33 IoT) 보드에 RFID 카드 모듈 사용해 보기! ( feat. RFID 컴파일 오류 있는 경우도 보세요! ) Nano 33 every(또는 33 iot 등)에서 RFID를 사용해보려 하..

rasino.tistory.com

 

반응형