정전식 지문 스캔 센서 FPC1020A
(Capacitive Fingerprint Sensor FPC1020A)
개요
- 본 제품은 정전식 지문 스캔 센서 FPC1020A입니다.
- 150개의 지문을 저장할 수 있으며, 1초 이내에 지문을 매칭할 수 있습니다.
- UART 인터페이스를 가지고 있으며, 3.3V 시스템과 사용이 가능합니다.
특징
- Fingerprint identification capacity: 150 fingerprints, identification time is less than 1 second, can be customized large capacity
- Capacitive surface array semiconductor fingerprint sensor
- Sensor has 256 grayscale pixel quality per pixel
- Fingerprint data registration and comparison under minimum storage conditions: 200 bytes of fingerprint template
- 1:N identification and 1:1 verification
- Support finger 360 rotation recognition
- Recognizing Passed Neural Network Self-learning Function
- Optimize the wet finger collection quality in semiconductor sensors
- Increase intelligent repair processing of incomplete fingerprint images
- Fingerprint feature data upload/download function
- Overall module sleep power consumption 25uA
- Adjustable security level 1-9, default level 5
- Communication: UART
- Sensor resolution: 500 DPI
- Sensor pixels: 160*160
- Fingerprint capacity: 150 pieces
- Fingerprint feature extraction time: < 0.45 seconds
- 1:N matching time (1000 full registrations): < 0.45 seconds
- Fake rate: 0.0001%
- Refuse rate: 0.001%
- Communication Interface: UART, USB
- Serial communication parameters: No parity Parity = NONE, 1 stop bit Stop Bit = 1
- No flow control: Flow Control = NONE
- Baud rate: 9600, 19200, 38400, 57600, 115200 (bps)
- Factory setting: 19200bps
- Dynamic Current: <50mA
- Standby current: <25μA (steady-state standby current)
- Operating voltage: 3V or 5V
- Working temperature: -10 °C - 60 °C
- Relative Humidity: 20%– 80%
- Pins difinate:
1 VT IN Finger detection power supply positive input, 3.3V
2 T OUT Finger detection signal output terminal
3 V in power supply positive input terminal, 3.3V
4 TX out serial data output, TTL logic level
5 RX in Serial data input, TTL logic level
6 GND — signal ground, internally connected to power ground
문서
-
Pin Configuration
Pin Definitions
NAME I/O DESCRIPTION V-TOUCH POWER Power for finger detected funtion,5V or 3.3V TOUCH OUTPUT Output high (3.3V) when finger detected,otherwise output low VCC POWER 5V power input UART_TX OUTPUT Transmitter of TTL serial UART_RX INPUT Receiver of TTL serial GND POWER Power GND Arduino Demo
Hooking up
There are only four pins that need to be hooked up in order to start using this sensor in a project. One for VCC, one for GND, and two data lines.
- VCC → 5V
- UART_RX → Digital 2
- UART_TX → Digital 3
- GND → GND
Installation
- Download FPC1020.zip
- Unzip, and add to Arduino/hardware/libraries/
Sketch Code
//// Demo code for FPC1020 Fingerprint Sensor// Created by Deray on 2015-10-07.//#include <SoftwareSerial.h>#include <FPC1020.h>extern unsigned char l_ucFPID;extern unsigned char rBuf[192]; //Receive return data#define sw_serial_rx_pin 2 // Connect this pin to TX on the FPC1020#define sw_serial_tx_pin 3 // Connect this pin to RX on the FPC1020SoftwareSerial swSerial(sw_serial_rx_pin, sw_serial_tx_pin); // Fingerprint serial (RX, TX)FPC1020 Finger(&swSerial);void setup(){ Serial.begin(19200); pinMode(4, INPUT); // IRQ Serial.println("Fingerprint Test ! ");}void loop(){ unsigned int User_ID = 0; unsigned char incomingNub; unsigned int matchUserID = 0; unsigned char rtf = 0; while(1){ Serial.println("============== Menu ================"); Serial.println("Add a New User ----------------- 1"); Serial.println("Fingerprint Matching --------------- 2"); Serial.println("Get User Number and Print All User ID ------ 3 "); Serial.println("Delete Assigned User --------- 4"); Serial.println("Delete All User ---------- 5"); Serial.println("============== End ================="); unsigned char MODE = 0; while(Serial.available()<=0); MODE = Serial.read()-0x30; switch(MODE){ case 0: // Null break; case 1: // Fingerprint Input and Add a New User MODE = 0; User_ID = 0; Serial.println("Please input the new user ID (0 ~ 99)."); while(Serial.available()<=0); delay(100); incomingNub = Serial.available(); for(char i=incomingNub; i>=1; i--){ User_ID = User_ID + (Serial.read()-0x30)*pow(10,(i-1)); } Serial.println("Add Fingerprint, please put your finger on the Fingerprint Sensor."); rtf = Finger.Enroll(User_ID); if(rtf == TRUE) { Serial.print("Success, your User ID is: "); Serial.println( User_ID , DEC); } else if (rtf == FALSE) { Serial.println("Failed, please try again."); } else if( rtf == ACK_USER_OCCUPIED){ Serial.println("Failed, this User ID alread exsits."); } else if( rtf == ACK_USER_EXIST){ Serial.println("Failed, this fingerprint alread exsits."); } delay(2000); break; case 2: // Fingerprint Matching MODE = 0 ; Serial.println("Mctch Fingerprint, please put your finger on the Sensor."); if( Finger.Search()){ Serial.print("Success, your User ID is: "); Serial.println( l_ucFPID, DEC); } else { Serial.println("Failed, please try again."); } delay(1000); break; case 3: // Print all user ID MODE = 0; if(Finger.PrintUserID()){ Serial.print("Number of Fingerprint User is:"); unsigned char UserNumb; UserNumb = (l_ucFPID-2)/3; Serial.println(UserNumb,DEC); Serial.println("Print all the User ID:"); for(char i = 0; i < UserNumb; i++){ Serial.println(rBuf[12+i*3],DEC); } } else { Serial.println("Print User ID Fail!"); } delay(1000); break; case 4: // Delete Assigned User ID MODE = 0; User_ID = 0; Serial.println("Please input the user ID(0 ~ 99) you want to delecte."); while(Serial.available()<=0); delay(100); incomingNub = Serial.available(); for(char i=incomingNub; i>=1; i--){ User_ID = User_ID + (Serial.read()-0x30)*pow(10,(i-1)); } if(Finger.Delete(User_ID)) { Serial.println("Delete Fingerprint User Success!"); } else{ Serial.println("Delete Fingerprint User Fail!"); } delay(1000); break; case 5: // Delete All User ID MODE = 0; unsigned char DeleteFlag = 0; Serial.println("Delete All Users, Y/N ?"); for(unsigned char i=200; i>0; i--)//wait response info { delay(20); if(Serial.available()>0) { DeleteFlag = Serial.read(); break; } } if(DeleteFlag == 'Y'||'y'){ if(Finger.Clear()){ Serial.println("Delete All Fingerprint User Success!"); } else{ Serial.println("Delete All Fingerprint User Fail!"); } } delay(500); break; } }}
Monitor report