FPM10A Fingerprint sensor is there a way to detect finger on arduino start

Status
Not open for further replies.

stopsopa56

New member
Hi
I have project where I would like to save energy, so:

I have one Arduino nano with Fingerprint sensor and a button.

Button when pressed turns on power to arduino and Fingerprint sensor. Releasing button cut off power.


User lays his finger on the sensor and press button with finger tip at the same time.

b7e95Lh.png

UN3jz9j.png



But I found that It can't work this way, because after powering everything up this way, user would need to rise his finger and put it back again without turning power off to make sensor register finger for the first time.

The question is:
Is there a way to recognize finger and run action when finger is already on the sensor before system is powered on?
In other words: Is there a way to trigger finger recognition function immediately after powering everything on even if finger was on the sensor before system was powered on?

I'm using obviously library:
https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library]https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library
and Fingerprint sensor FPM10A

This is the example (original) code from:
https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/blob/master/examples/fingerprint/fingerprint.ino

Code:
#include <Adafruit_Fingerprint.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("nnAdafruit finger detect test");

 *// set the data rate for the sensor serial port
 *finger.begin(57600);
 *delay(5);
 *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...");
}

void loop() * * * * * * * * * * // run over and over again
{
 *getFingerprintIDez();
 *delay(50); * * * * * *//don't ned to run this at full speed.
}

// 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; 
}
 
Status
Not open for further replies.
Back
Top