Fingerprint sensor not working

My fingerprint sensor isn’t working with this code, is there anything bad in the code? The fingerprint sensor does work with other projects, so the problem is not from the sensor.

#include <LiquidCrystal.h>

LiquidCrystal lcd(4, 5, 8, 9, 10, 11);

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

SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

const int redLedPin = 12;
const int greenLedPin = 13;

// Variables para almacenar el fingerprint ID y el nombre
int fingerprintID = 0;
String IDname;

void setup() {
// put your setup code here, to run once:

Serial.begin(9600);

finger.begin(57600);

if (finger.verifyPassword()) {

Serial.println(“Fingerprint Sensor Found”);

}
else {

Serial.println(“Fingerprint Sensor NOT Found”);
while (1) { delay(1); }

}

lcd.begin(16, 2);

pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);

}

void loop() {
// put your main code here, to run repeatedly:

if (fingerprintID == 1 || fingerprintID == 2) {

IDname = “Santiago”;

digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);

lcd.setCursor(0, 0);
lcd.print(“Bienvenido”);
lcd.setCursor(0, 1);
lcd.print(IDname);

Serial.println(“Santiago”);

}
else {

digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);

lcd.setCursor(0, 0);
lcd.print(“Enter finger”);

}

}

Start with the code that works.
Liberally sprinkle print statements into the code so that you know what it is doing and why.
Gradually change the working code to whatever you want it to do now.

If you want people to give more help you need to read the rules about how to post code etc. and you need to give far more information than "it does not work". You need to state exactly why it fails and what you have done to diagnose the problem.

Edit your post to put your code in code tags and preferably after you have used auto format in the ide to make it more readable. If you make it easy for people to help you then you are more likely to get help
9th line looks odd to me

How do you get out of your first while loop?

There appears to be code missing. I don't see where the Arduino talks to the fingerprint reader.

I got the code from a tutorial (Fingerprint Sensor Module with Arduino | Random Nerd Tutorials), so the code is almost the same. So, when I upload the code, the sensor is recognized but it doesn’t read fingerprints. My project idea is to read the fingerprint and if recognized turned a green led on and show the persons name in an lcd display. And how do I communicate with the fingerprint sensor? Sorry if the question is too simple but I’m a beginner.

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

SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

#include <LiquidCrystal.h>

LiquidCrystal lcd(4, 5, 8, 9, 10, 11);

const int redLedPin = 12;
const int greenLedPin = 13;

// Variables for the fingerprint ID and the person's name
int getFingerprintID = 0;
String IDname;

void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);

  finger.begin(57600);

  if (finger.verifyPassword()) {

    Serial.println("Fingerprint Sensor Found");
    
  }
  else {

    Serial.println("Fingerprint Sensor NOT Found");
    while (1) { delay(1); }
    
  }

  lcd.begin(16, 2);

  pinMode(redLedPin, OUTPUT);
  pinMode(greenLedPin, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  if (getFingerprintID == 1 || getFingerprintID == 2) {

    IDname = "Santiago";
    
    digitalWrite(redLedPin, LOW);
    digitalWrite(greenLedPin, HIGH);

    lcd.setCursor(0, 0);
    lcd.print("Bienvenido");
    lcd.setCursor(0, 1);
    lcd.print(IDname);

    Serial.println("Santiago");
    
  }
  else {

    digitalWrite(redLedPin, HIGH);
    digitalWrite(greenLedPin, LOW);

    lcd.setCursor(2, 0);
    lcd.print("Enter finger");
    
  }

}

sswettv:
My fingerprint sensor isn't working with this code, is there anything bad in the code? The fingerprint sensor does work with other projects, so the problem is not from the sensor.

It would probably help if you could post the code that works.

wildbill:
It would probably help if you could post the code that works.

The codes that work are the ones that come as an example with the library. Here’s one:

/*************************************************** 
  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>


#if defined(__AVR__) || defined(ESP8266)
// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
// Set up the serial port to use softwareserial..
SoftwareSerial mySerial(2, 3);

#else
// On Leonardo/M0/etc, others with hardware serial, use hardware serial!
// #0 is green wire, #1 is white
#define mySerial Serial1

#endif


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);
  delay(5);
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) { delay(1); }
  }

  Serial.println(F("Reading sensor parameters"));
  finger.getParameters();
  Serial.print(F("Status: 0x")); Serial.println(finger.status_reg, HEX);
  Serial.print(F("Sys ID: 0x")); Serial.println(finger.system_id, HEX);
  Serial.print(F("Capacity: ")); Serial.println(finger.capacity);
  Serial.print(F("Security level: ")); Serial.println(finger.security_level);
  Serial.print(F("Device address: ")); Serial.println(finger.device_addr, HEX);
  Serial.print(F("Packet len: ")); Serial.println(finger.packet_len);
  Serial.print(F("Baud rate: ")); Serial.println(finger.baud_rate);
  
  finger.getTemplateCount();

  if (finger.templateCount == 0) {
    Serial.print("Sensor doesn't contain any fingerprint data. Please run the 'enroll' example.");
  } 
  else {
    Serial.println("Waiting for valid finger...");
      Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
  }
}

void loop()                     // run over and over again
{
  getFingerprintID();
  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.fingerSearch();
  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; 
}

That’s the one that comes for finding a fingerprint match.