adafruit fingerprint arduino

Hello
I’m working on an integrated fingerprint sensor that would be able to give an access on a fingerprint match or deny access on False image.
Though I have found this code very useful, and it helped me to light an LED on true match and RED led on unmatched… Thu, My question is how do I light another yellow LED at the begining ( its like asking the user to print the fingerprint image on the sensor) ?
this is the code that i’m using:

  1. #include <Adafruit_Fingerprint.h>
  2. #include <SoftwareSerial.h>
  3. int getFingerprintIDez();
  4. // pin #2 is IN from sensor (GREEN wire)
  5. // pin #3 is OUT from arduino (WHITE wir
    e)
  6. SoftwareSerial mySerial(2, 3);
  7. Adafruit_
    Fingerprint finger = Adafruit_Fingerp
    rint(&mySerial);
  8. void setup()
  9. {
  10. Serial.begin(9600);
  11. Serial.println(“fingertest”);
  12. pinMode(11,OUTPUT);
  13. pinMode(12,OUTPUT);
  14. // set the data rate for the sensor serial
    port
  15. finger.begin(57600);
  16. if (finger.verifyPassword()) {
  17. Serial.println(“Found fingerprint sensor!”);
  18. } else {
  19. Serial.println(“Did not find fingerprint sensor
    :(”);
  20. while (1);
  21. }
  22. Serial.println(“Waiting for valid finger…”);
  23. }
  24. void loop() // run over and over
    again
  25. {
  26. getFingerprintIDez();
  27. delay(50); //don’t ned to run this at
    full speed.
  28. digitalWrite(12,HIGH);
  29. }
  30. // returns -
    1 if failed, otherwise returns ID #
  31. int getFingerprintIDez() {
  32. uint8_t p = finger.getImage();
  33. if (p != FINGERPRINT_OK) return -1;
  34. p = finger.image2Tz();
  35. if (p != FINGERPRINT_OK) return -1;
  36. p = finger.fingerFastSearch();
  37. if (p != FINGERPRINT_OK) return -1;
  38. // found a match!
  39. digitalWrite(12,LOW);
  40. digitalWrite(11,HIGH);
  41. delay(4000);
  42. digitalWrite(11,LOW);
  43. delay(500);
  44. digitalWrite(12,HIGH);
  45. Serial.print(“Found ID #”); Serial.
    print(finger.fingerID);
  46. Serial.print(" with confidence of "); Serial.
    println(finger.confidence);
  47. return finger.fingerID;
    }

My question is how do I light another yellow LED at the begining

digitalWrite(theOtherYellowLEDPin, HIGH);

Hello, I want to ask something, I used Adafruit Fringerprint with arduino Mega 2560. Tx(pin 10) Rx(pin 11) GND and Vin. I had an error when try to enrol a fingerprint in serial monitor, it show “unknown error” and the error came from part “p=finger.createModel;” . So how can I fix this error,help please. Thanks u so much.

code that i used (adafruit fingerprint code) :

/***************************************************
This is an example sketch for our optical Fingerprint sensor

Designed specifically to work with the Adafruit BMP085 Breakout
----> http://www.adafruit.com/products/751

These displays use TTL Serial to communicate, 2 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!

Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

uint8_t id;

uint8_t getFingerprintEnroll();

// Software serial for when you dont have a hardware serial port
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
// On Leonardo/Micro/Yun, use pins 8 & 9. On Mega, just grab a hardware serialport
SoftwareSerial mySerial(10, 11);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
//Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1);

void setup()
{
while (!Serial); // For Yun/Leo/Micro/Zero/…
delay(500);

Serial.begin(9600);
Serial.println(“Adafruit Fingerprint sensor enrollment”);

// 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);
}
}

uint8_t readnumber(void) {
uint8_t num = 0;
boolean validnum = false;
while (1) {
while (! Serial.available());
char c = Serial.read();
if (isdigit(c)) {
num *= 10;
num += c - ‘0’;
validnum = true;
} else if (validnum) {
return num;
}
}
}

void loop() // run over and over again
{
Serial.println(“Ready to enroll a fingerprint! Please Type in the ID # you want to save this finger as…”);
id = readnumber();
Serial.print(“Enrolling ID #”);
Serial.println(id);

while (! getFingerprintEnroll() );
}

uint8_t getFingerprintEnroll() {

int p = -1;
Serial.print(“Waiting for valid finger to enroll as #”); Serial.println(id);
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println(“Image taken”);
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println(“Communication error”);
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println(“Imaging error”);
break;
default:
Serial.println(“Unknown error”);
break;
}
}

// OK success!

p = finger.image2Tz(1);
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;
}

Serial.println(“Remove finger”);
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
Serial.print(“ID “); Serial.println(id);
p = -1;
Serial.println(“Place same finger again”);
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println(“Image taken”);
break;
case FINGERPRINT_NOFINGER:
Serial.print(”.”);
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println(“Communication error”);
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println(“Imaging error”);
break;
default:
Serial.println(“Unknown error”);
break;
}
}

// OK success!

p = finger.image2Tz(2);
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!
Serial.print(“Creating model for #”); Serial.println(id);

p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println(“Prints matched!”);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println(“Communication error”);
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println(“Fingerprints did not match”);
return p;
} else {
Serial.println(“Unknown error”);
return p;
}

Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println(“Stored!”);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println(“Communication error”);
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println(“Could not store in that location”);
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println(“Error writing to flash”);
return p;
} else {
Serial.println(“Unknown error”);
return p;
}
}

The first step is to display the error code when you get an Unknown Error.

The second step is to look in the library to see how that error code is defined.

The third step is to fix the error.