i have problem coding write between id, can me solve it?
i have fingerprint scanner project, want blink led 1pin output 5 id.
if write manually until 15 id scanner become slow return.
i frustating coding it
{
if(finger.fingerid==1) ==> possible id1 until id5?
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
this code, slow return
thanks
i have fingerprint scanner project, want blink led 1pin output 5 id.
if write manually until 15 id scanner become slow return.
i frustating coding it
{
if(finger.fingerid==1) ==> possible id1 until id5?
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
this code, slow return
code: [select]
/***************************************************
example sketch our optical fingerprint sensor
designed work adafruit bmp085 breakout
----> http://www.adafruit.com/products/751
these displays use ttl serial communicate, 2 pins required
interface
adafruit invests time , resources providing open source code,
please support adafruit , open-source hardware purchasing
products adafruit!
written limor fried/ladyada adafruit industries.
bsd license, text above must included in redistribution
****************************************************/
#include <adafruit_fingerprint.h>
#include <softwareserial.h>
int getfingerprintidez();
// pin #2 in sensor (green wire)
// pin #3 out arduino (white wire)
softwareserial myserial(2, 3);
adafruit_fingerprint finger = adafruit_fingerprint(&myserial);
// on leonardo/micro or others hardware serial, use those! #0 green wire, #1 white
//adafruit_fingerprint finger = adafruit_fingerprint(&serial1);
void setup()
{
while (!serial); // yun/leo/micro/zero/...
serial.begin(9600);
serial.println("adafruit finger detect test");
pinmode(11, output);
pinmode(12, output);
pinmode(10, output);
// set data rate 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 valid finger...");
}
void loop() // run on , on again
{
getfingerprintidez();
delay(50); //don't ned run @ 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 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 print match!");
} else if (p == fingerprint_packetrecieveerr) {
serial.println("communication error");
return p;
} else if (p == fingerprint_notfound) {
serial.println("did not find match");
return p;
} else {
serial.println("unknown error");
return p;
}
// found match!
serial.print("found id #"); serial.print(finger.fingerid);
serial.print(" 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 match!
{
if(finger.fingerid==1)
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
{
if(finger.fingerid==2)
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
{
if(finger.fingerid==3)
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
{
if(finger.fingerid==4)
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
{
if(finger.fingerid==5)
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
{
if(finger.fingerid==6)
digitalwrite(11, high);
delay(3000);
digitalwrite(11, low);
}
{
if(finger.fingerid==7)
digitalwrite(11, high);
delay(3000);
digitalwrite(11, low);
}
{
if(finger.fingerid==8)
digitalwrite(11, high);
delay(3000);
digitalwrite(11, low);
}
{
if(finger.fingerid==9)
digitalwrite(11, high);
delay(3000);
digitalwrite(11, low);
}
{
if(finger.fingerid==10)
digitalwrite(11, high);
delay(3000);
digitalwrite(11, low);
}
{
if(finger.fingerid==11)
digitalwrite(10, high);
delay(3000);
digitalwrite(10, low);
}
{
if(finger.fingerid==12)
digitalwrite(10, high);
delay(3000);
digitalwrite(10, low);
}
{
if(finger.fingerid==13)
digitalwrite(10, high);
delay(3000);
digitalwrite(10, low);
}
{
if(finger.fingerid==14)
digitalwrite(10, high);
delay(3000);
digitalwrite(10, low);
}
{
if(finger.fingerid==15)
digitalwrite(10, high);
delay(3000);
digitalwrite(10, low);
}
serial.print("found id #"); serial.print(finger.fingerid);
serial.print(" confidence of "); serial.println(finger.confidence);
return finger.fingerid;
}
thanks
code: [select]
{
if(finger.fingerid==4)
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
your problem have braces in wrong place. written way, first line in block conditional. delay call , call write pin low happen whether fingerid equals 4 or not. getting 3 second delay every check regardless of whether matched or not.
if statements should written way:
code: [select]
if(finger.fingerid==4){
digitalwrite(12, high);
delay(3000);
digitalwrite(12, low);
}
the code block starts after if statement, not before.
Arduino Forum > Using Arduino > Programming Questions > Code help grouping id fingerprint scanner
arduino
Comments
Post a Comment