질문게시판 > 지문인식기 코드 질문

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

지문인식기 코드 질문

페이지 정보

작성자 흔한공대생 작성일20-11-26 16:10 조회2,640회 댓글1건

본문

여기서 스위치를 눌렀을때 다시 지문인식을 다시하는 걸로 돌아가고 싶은데 어떻게 해야될지 모르겠네요

 

 

 

 

const int Relaypin = 4;

 

const int Switch = 5;

 

int val= 0;

 

int old_val = 0;

 

int state = 0;

 

int data = 0;

 

#include <Adafruit_Fingerprint.h>

 

#include <SoftwareSerial.h>

 

SoftwareSerial mySerial(2, 3);

 

 

 

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

 

 

 

void setup() {

 

  //시리얼 통신 시작

 

  Serial.begin(9600);

 

  while (!Serial);  // For Yun/Leo/Micro/Zero/...

 

  delay(100);

 

  Serial.println("\n\nAdafruit finger detect test");

 

 

 

  // set the data rate for the sensor serial port

 

 //지문인식 센서 통신 시작

 

  finger.begin(57600);

 

  //지문인식 디바이스 연결 확인

 

  if (finger.verifyPassword()) {

 

    Serial.println("Found fingerprint sensor!");

 

  } else {

 

    Serial.println("Did not find fingerprint sensor :(");

 

    while (1) { delay(1); }

 

  }

 

 //등록된 지문 유무 판단

 

  finger.getTemplateCount();

 

  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");

 

  Serial.println("Waiting for valid finger...");

 

  pinMode(Switch, INPUT);

 

  pinMode(Relaypin, OUTPUT);

 

  

 

}

 

 

 

void loop() 

 

{

 

  ///Switch를 눌렀을때 함수 불러옴

 

  

 

  if(data == 1){

 

    Serial.println("일치");

 

    val = digitalRead(Switch);

 

      if((val==HIGH)&&(old_val==LOW))

 

        {

 

          state = 1-state;

 

          delay(50);

 

        }

 

      old_val = val;

 

        if(state == 1)

 

          {

 

            digitalWrite(Relaypin,HIGH);

 

          }

 

        else

 

          {

 

 

            digitalWrite(Relaypin,LOW);

            

          }

 

   }

 

   else {

 

    data = getFingerprintIDez();

 

    digitalWrite(Switch, LOW);

 

    digitalWrite(Relaypin, LOW);

 

    }

 

   

 

  delay(50);            //don't ned to run this at full speed.

 

}

 

 

 

uint8_t getFingerprintID() {

 

  uint8_t p = finger.getImage();

 

  switch (p) {

 

    case FINGERPRINT_OK:

 

      Serial.println("Image taken");

 

      break;

 

    case FINGERPRINT_NOFINGER:

 

      Serial.println("No finger detected");

 

      return p;

 

    case FINGERPRINT_PACKETRECIEVEERR:

 

      Serial.println("Communication error");

 

      return p;

 

    case FINGERPRINT_IMAGEFAIL:

 

      Serial.println("Imaging error");

 

      return p;

 

    default:

 

      Serial.println("Unknown error");

 

      return p;

 

  }

 

 

 

  // OK success!

 

 

 

  p = finger.image2Tz();

 

  switch (p) {

 

    case FINGERPRINT_OK:

 

      Serial.println("Image converted");

 

      break;

 

    case FINGERPRINT_IMAGEMESS:

 

      Serial.println("Image too messy");

 

      return p;

 

    case FINGERPRINT_PACKETRECIEVEERR:

 

      Serial.println("Communication error");

 

      return p;

 

    case FINGERPRINT_FEATUREFAIL:

 

      Serial.println("Could not find fingerprint features");

 

      return p;

 

    case FINGERPRINT_INVALIDIMAGE:

 

      Serial.println("Could not find fingerprint features");

 

      return p;

 

    default:

 

      Serial.println("Unknown error");

 

      return p;

 

  }

 

  

 

  // OK converted!

 

  p = finger.fingerFastSearch();

 

  if (p == FINGERPRINT_OK) {

 

    Serial.println("Found a print match!");

 

  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {

 

    Serial.println("Communication error");

 

    return p;

 

  } else if (p == FINGERPRINT_NOTFOUND) {

 

    Serial.println("Did not find a match");

 

    return p;

 

  } else {

 

    Serial.println("Unknown error");

 

    return p;

 

  }   

 

  

 

  // found a match!

 

  Serial.print("Found ID #"); Serial.print(finger.fingerID); 

 

  Serial.print(" with confidence of "); Serial.println(finger.confidence); 

 

 

 

  return finger.fingerID;

 

}

 

 

 

// returns -1 if failed, otherwise returns ID #

 

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;

 

  

 

  // found a match!

 

  Serial.print("Found ID #"); Serial.print(finger.fingerID); 

 

  Serial.print(" with confidence of "); Serial.println(finger.confidence);

 

  return finger.fingerID; 

 

   

 

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 1

조회수 : 2,640

master님의 댓글

master 작성일

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
Adafruit_Fingerprint finger=Adafruit_Fingerprint(&mySerial);
//
const int Relaypin=4;
const int Switch=5;
//
int val=0;
int old_val=0;
int state=0;
int data=0;
//
void setup(){
  Serial.begin(9600); while(!Serial); // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nAdafruit finger detect test");
  //지문인식 센서 통신 시작
  finger.begin(57600);
  //지문인식 디바이스 연결 확인
  if (finger.verifyPassword()){ Serial.println("Found fingerprint sensor!"); }
  else{ Serial.println("Did not find fingerprint sensor :("); while (1)delay(1); }
  //등록된 지문 유무 판단
  finger.getTemplateCount();
  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
  Serial.println("Waiting for valid finger...");
  pinMode(Switch,INPUT);
  pinMode(Relaypin,OUTPUT);
}
//
void loop(){
  ///Switch를 눌렀을때 함수 불러옴
  if(data==1){
    Serial.println("일치");
    val=digitalRead(Switch);
    if((val==HIGH)&&(old_val==LOW)){ state=1-state; delay(50); }
    old_val=val;
    if(state==1){ digitalWrite(Relaypin,HIGH); } else{ digitalWrite(Relaypin,LOW); }
  }
  else{
    data=getFingerprintIDez();
    digitalWrite(Switch,LOW);
    digitalWrite(Relaypin,LOW);
  }
  delay(50); //don't ned to run this at full speed.
}
//
uint8_t getFingerprintID(){
  uint8_t p=finger.getImage();
  switch (p){
    case FINGERPRINT_OK:                    Serial.println("Image taken");            break;
    case FINGERPRINT_NOFINGER:            Serial.println("No finger detected");  return p;
    case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p;
    case FINGERPRINT_IMAGEFAIL:          Serial.println("Imaging error");          return p;
    default:                                        Serial.println("Unknown error");        return p;
  }
  // OK success!
  p=finger.image2Tz();
  switch (p){
    case FINGERPRINT_OK:                    Serial.println("Image converted");                      break;
    case FINGERPRINT_IMAGEMESS:        Serial.println("Image too messy");                      return p;
    case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error");                return p;
    case FINGERPRINT_FEATUREFAIL:        Serial.println("Could not find fingerprint features"); return p;
    case FINGERPRINT_INVALIDIMAGE:      Serial.println("Could not find fingerprint features"); return p;
    default:                                      Serial.println("Unknown error");                          return p;
  }
  // OK converted!
  p=finger.fingerFastSearch();
  if      (p==FINGERPRINT_OK)                    { Serial.println("Found a print match!"); }
  else if (p==FINGERPRINT_PACKETRECIEVEERR){ Serial.println("Communication error"); return p; }
  else if (p==FINGERPRINT_NOTFOUND)        { Serial.println("Did not find a match");  return p; }
  else                                                  { Serial.println("Unknown error");          return p; } 
  // found a match!
  Serial.print("Found ID #");            Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  return finger.fingerID;
}
//
// returns -1 if failed,otherwise returns ID #
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;
  // found a match!
  Serial.print("Found ID #");            Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  return finger.fingerID;
}
여기서
  if(data==1){
data초기값은 0인데 1이 될 수 있나요?
ID가 1인가보죠?

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 라즈베리파이4 신형 선택문제 댓글[1] maximum  22-06-26
질문 음전압 ADC 댓글[2] 412904  22-06-26
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2  22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master  22-06-25
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..… 댓글[1] 첨부파일따랑해영  22-06-19
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 .… 첨부파일따랑해영  22-06-19
질문 서보모터와 초음파센서 댓글[1] 브링미히어  22-06-17
질문 LCD 도와주세요 ㅜㅠㅠㅠ 댓글[2] 첨부파일dentist22  22-06-17
질문 안녕하세요 atmega128 질문드리고 싶습니다. (자… 댓글[3] dlcldl  22-06-17
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전