I am working on a project using arduino uno . The project has one finger print scanner and one bluetooth module .Since both bluetooth module and finger scanner works on RX TX pins .So i had used soft serial for having two RX,TX pins
Both the Finger scanner and Bluetooth does the same work, both turn on a LED
I have separate code for both(FP ,BT) both the sketch is working well individually
But when is joined both code together both finger scanner and Bluetooth is not working
This is the Finger print sketch : //working
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
int led1 = 12, led2 = 11;
int getFingerprintIDez();
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
Serial.begin(9600);
Serial.println("fingertest");
pinMode(led1 ,OUTPUT);
pinMode(led2 ,OUTPUT);
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();
delay(50);
}
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;
}
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;
}
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!
digitalWrite(12,HIGH);
delay(200);
digitalWrite(11,HIGH);
delay(500);
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
This is Bluetooth module sketch : //working
#include <SoftwareSerial.h>
int led1= 12, led2 = 11, led3 = 10, led4 = 9, led5 = 8, led6 = 7;
String readString;
int input = 0;
SoftwareSerial mySerial(2, 3);
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
}
void loop()
{
if(mySerial.available() > 0)
{
input = mySerial.read();
}
switch (input)
{
case 1:
digitalWrite(12, HIGH);
break;
case 2:
{
digitalWrite(12, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(7, LOW);
}
break;
case 3:
digitalWrite(11, HIGH);
break;
case 4:
digitalWrite(10, HIGH);
break;
case 5:
digitalWrite(10, LOW);
break;
case 6:
digitalWrite(9, HIGH);
break;
case 7:
digitalWrite(9, LOW);
break;
case 8:
digitalWrite(7, HIGH);
break;
case 9:
digitalWrite(7, LOW);
}
}
And this is final code : //not working
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
int led1= 12, led2 = 11, led3 = 10, led4 = 9, led5 = 8, led6 = 7;
String readString;
int input = 0;
int getFingerprintIDez();
SoftwareSerial FPSerial(2, 3);
SoftwareSerial mySerial(4, 5);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&FPSerial);
void setup()
{
mySerial.begin(9600);
Serial.println("fingertest");
Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
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();
delay(50);.
if(mySerial.available() > 0)
{
input = mySerial.read();
}
switch (input)
{
case 1:
digitalWrite(12, HIGH);
break;
case 2:
{
digitalWrite(12, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(7, LOW);
}
break;
case 3:
digitalWrite(11, HIGH);
break;
case 4:
digitalWrite(10, HIGH);
break;
case 5:
digitalWrite(10, LOW);
break;
case 6:
digitalWrite(9, HIGH);
break;
case 7:
digitalWrite(9, LOW);
break;
case 8:
digitalWrite(7, HIGH);
break;
case 9:
digitalWrite(7, LOW);
}
}
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;
}
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;
}
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
}
nt 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!
digitalWrite(12,HIGH);
delay(200);
digitalWrite(11,HIGH);
delay(500);
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}