BASIC4MCU | 질문게시판 | 답변 : rfid 태그 도어락
페이지 정보
작성자 master 작성일2019-05-29 07:01 조회4,303회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8955
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-29 오전 7:08:12// by Ok-Hyun Park//RFID 를 이용해 서보모터를 컨트롤 하는데우선 1번 태그하면 문이 열리고 타이머가 흘러가 30초 후에 문이 닫히는 기능인데중간에 한 번 더 태그하면 타이머 흘러가는거 무시하고 그냥 바로 문 닫히게 하고싶습니다.어떻게 코드를 바꿔야 할까요? 중간에 rfid를 읽는 코드같은거 한 번 넣어봤더니 이러면 읽기전까지 대기모드라서 타이머가 안흘러가네요 ㅠㅠ///*RST -->Pin 9SS -->Pin 10MOSI-->Pin 11MISO-->Pin 12SCK -->Pin 13*/#include <MFRC522.h>#include <MFRC522Extended.h>#include <SPI.h>const int RST_PIN=9;const int SS_PIN=10;MFRC522 mfrc(SS_PIN,RST_PIN); // MFR522를 이용하기 위해 mfrc객체를 생성//#include <Servo.h>Servo servo;//bool state=0;int angle=0,timer=0;//void setup(){servo.attach(3); servo.write(0);SPI.begin(); mfrc.PCD_Init(); //Init MFRC522Serial.begin(9600); while(!Serial);delay(50);}//void loop(){if(mfrc.PICC_IsNewCardPresent()){ // 새 카드if(mfrc.PICC_ReadCardSerial()){ // 카드 읽기if(mfrc.uid.uidByte[0]==119&&mfrc.uid.uidByte[1]==85&&mfrc.uid.uidByte[2]==201&&mfrc.uid.uidByte[3]==59){ // UID 체크Serial.println("ID Conformed"); state^=1;if(state){ Serial.println("Door Open"); angle=90; timer=30; }else { Serial.println("Door Close"); angle=0; timer= 0; }}else{ angle=0; Serial.println("ID not Matched"); }servo.write(angle);}}delay(1000);//if(timer){ Serial.println(timer);if(--timer==0){ Serial.println("Door Close"); angle=0; servo.write(angle); }}}
댓글 1
조회수 4,303코시님의 댓글
코시 작성일감사합니다. 근데 이게 어떨때는 되다가 어떨때는 안되고 막 그러네용... 왜그런지 아시나요? 스케치 업로드 하고 rfid가 읽힐때가 있고 안읽힐때가 있어요