BASIC4MCU | 질문게시판 | 답변 : 아두이노 지문인식센서와 키패드, 모터를 연동하는데 궁금합니다 ㅜㅜ
페이지 정보
작성자 master 작성일2019-11-04 10:29 조회3,690회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=10527
본문
//#include <Servo.h>Servo motor;//#include <Keypad.h>const byte numRows=4;const byte numCols=4;char keymap[numRows][numCols]={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};byte rowPins[numRows]={11,10,9,8};byte colPins[numCols]={7,6,5,4};Keypad myKeypad=Keypad(makeKeymap(keymap),rowPins,colPins,numRows,numCols);//#include <SoftwareSerial.h>SoftwareSerial mySerial(2,3);//#include <Adafruit_Fingerprint.h>Adafruit_Fingerprint finger=Adafruit_Fingerprint(&mySerial);//char pw[4]={'5','5','8','8'};int count=0,tru=0;//void setup(){motor.attach(13);Serial.begin(9600); while(!Serial);finger.begin(57600);if(finger.verifyPassword()){ Serial.println("Found fingerprint sensor!"); }else { Serial.println("Did not find fingerprint sensor:("); while(1); }Serial.println("Press your finger");}//void loop(){getFingerprintIDez();delay(50);}//int getFingerprintIDez(){uint8_t p=finger.getImage();if(p!=FINGERPRINT_OK)return-1;//p=finger.image2Tz();if(p!=FINGERPRINT_OK)return-1;//p=finger.fingerFastSearch();if(p!=FINGERPRINT_OK)return-1;//if(finger.fingerID==1){Serial.println("Enter your password");char keypressed=myKeypad.getKey();if(keypressed){Serial.println(keypressed);if (keypressed=='#' ){ re(); }else if(keypressed==pw[count]){ count++; tru++; }else if(keypressed!=pw[count]){ count++; }//if(count==4){ if(tru==4)Su(); else Fa(); }}}else{ Serial.println("Not Correct fingerprint"); }}//void Su(){ Serial.println("open the door"); motor.write( 0); delay(2000); re(); }void Fa(){ Serial.println("Fail"); motor.write(80); delay(2000); re(); }void re(){ Serial.println("reset"); motor.write(80); count=0; tru=0; }지금 지문인식과 키패드, 모터를 연동했는데
궁금한 점은
1. 낯선 지문이 인식되었을때 지문이 일치하지 않습니다를 출력하고 싶은데, 등록되지 않은 지문을 센서에 인식하면 출력이 되지 않습니다.
else{ Serial.println("Not Correct fingerprint"); }
이 코드가 실행되지 않는다는 말인가요?
지문인식 모듈을 만져본 적이 없어서 도움을 드리지 못합니다.
2. 지금 지문인식, 키패드, 모터를 합치는 중인데 1번 아이디를 갖고있는 지문이 인식되면 키패드로 한글자씩 받아와야하는데 키패드로 연동이 되지 않습니다.
지문 인식 후 무한루프를 실행해야합니다.
//#include <Servo.h>Servo motor;//#include <Keypad.h>const byte numRows=4;const byte numCols=4;char keymap[numRows][numCols]={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};byte rowPins[numRows]={11,10,9,8};byte colPins[numCols]={7,6,5,4};Keypad myKeypad=Keypad(makeKeymap(keymap),rowPins,colPins,numRows,numCols);//#include <SoftwareSerial.h>SoftwareSerial mySerial(2,3);//#include <Adafruit_Fingerprint.h>Adafruit_Fingerprint finger=Adafruit_Fingerprint(&mySerial);//char pw[4]={'5','5','8','8'};int count=0,tru=0;//void setup(){motor.attach(13);Serial.begin(9600); while(!Serial);finger.begin(57600);if(finger.verifyPassword()){ Serial.println("Found fingerprint sensor!"); }else { Serial.println("Did not find fingerprint sensor:("); while(1); }Serial.println("Press your finger");}//void loop(){getFingerprintIDez();delay(50);}//int getFingerprintIDez(){char keypressed;uint8_t p=finger.getImage();if(p!=FINGERPRINT_OK)return-1;//p=finger.image2Tz();if(p!=FINGERPRINT_OK)return-1;//p=finger.fingerFastSearch();if(p!=FINGERPRINT_OK)return-1;//if(finger.fingerID==1){Serial.println("Enter your password");while(1){ // 무한루프 실행keypressed=myKeypad.getKey();if(keypressed){Serial.println(keypressed);if (keypressed=='#' ){ re(); break; } // break;로 빠져나감else if(keypressed==pw[count]){ count++; tru++; }else if(keypressed!=pw[count]){ count++; }//if(count==4){ if(tru==4)Su(); else Fa(); break; } // break;로 빠져나감}}}else{ Serial.println("Not Correct fingerprint"); }}//void Su(){ Serial.println("open the door"); motor.write( 0); delay(2000); re(); }void Fa(){ Serial.println("Fail"); motor.write(80); delay(2000); re(); }void re(){ Serial.println("reset"); motor.write(80); count=0; tru=0; }
댓글 0
조회수 3,690등록된 댓글이 없습니다.