3

I am doing a fingerprint sensor that works with a 16x2 LCD. The code works correctly for the fingerprint sensor, but when I enter LCD code, the LCD works but the fingerprint stops working.

I am using an Arduino Uno and an Adafruit fingerprint sensor. Both the fingerprint and LCD are wired correctly and work separately. I have enrolled and tested fingerprints and it worked perfectly until I added LCD code.

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int getFingerprintIDez();
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup() {
 // set up the LCD's number of columns and rows:
 lcd.begin(16, 2);
 // Print a message to the LCD.
 lcd.print("hello, world!");
 Serial.begin(9600);
 Serial.println("fingertest");
 // 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);
 }
 Serial.println("Waiting for valid finger...");
}
void loop() {
 getFingerprintIDez();
}
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); 
}
// 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.println(finger.fingerID);
 Serial.print("This Finger print related to : ");
 switch(finger.fingerID){
 case 0: 
 Serial.println("Subhy Mesmar");
 break;
 case 1 : 
 Serial.println("Amjad Mesmar");
 break;
 }
 return finger.fingerID;
}

In this image the fingerprint sensor works without LCD code:

Fingerprint sensor works without lcd code

And in this one the LCD works after adding code but the fingerprint sensor stopped working:

lcd works after adding code but fingerprint sensors stopped working

dda
1,5951 gold badge12 silver badges17 bronze badges
asked Apr 30, 2017 at 6:28

1 Answer 1

3

You have pins 2 and 3 used by both the LCD and the SoftwareSerial used for the fingerprint sensor.

Use different pins for one or the other.

Worth looking at the Software Serial reference to understand more about how it works.

answered Apr 30, 2017 at 7:19
2
  • is it safe to use different pins for fingerprint sensor ? , Wont changing pins 2,3 damage the sensor ?Please advise . Commented Apr 30, 2017 at 8:08
  • Yes it should be safe. Commented Apr 30, 2017 at 19:31

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.