Fonksıyona buton atamak
  • Parmak izi okuyucusu üzernde calısıyorumda , şuanda kayıt-okuma-silme işlemlerını bırlestırdım , serial porttan 1 yazınca silme fonksıyonu calısıyor , 3 yazınca kayıt , 4 yazıncada okuma calısıyor , bu işlemlerı buton yardımıylada yaptırmak ıstıyorum ama serial porttanda deger girdigimde calısacak şekilde , ne yaptıysam olmadı buton koyunca serial portta calıstıramadım , bu konuda yardımcı olurmusunuz?



    #define VB

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

    //10 nolu pin yeşil kablo
    //11 nolu pin beyaz kablo

    SoftwareSerial mySerial(10, 11);
    Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);


    char data;
    unsigned int p;
    uint8_t id;



    void setup()
    {

    Serial.begin(9600);
    finger.begin(57600);
    Serial.println("Sensore baglaniyor !");
    if(finger.verifyPassword())
    {
    Serial.println("Baglanti basarili!");
    }

    else
    {
    Serial.println("Did not find fingerprint sensor ");
    while (1);
    }
    }

    void loop()
    {
    delay(100);

    if(Serial.available()>0)
    {
    data=Serial.read();

    if(data=='1')
    {
    Serial.println("Delete all ID records");
    finger.emptyDatabase();
    delay(50);
    EEPROM.write(0,-1); //reset ID counter
    }

    else if(data=='3')
    {
    id = EEPROM.read(0) + 1; //get next available ID
    Serial.print("Enrolling ID #");
    Serial.println(id);
    getFingerprintEnroll(id);
    delay(50);
    EEPROM.write(0, id); //save current ID
    }

    while (data=='4')
    {
    getFingerprintID();
    delay(50);

    }
    }
    }


    uint8_t getFingerprintEnroll(uint8_t id)
    {
    uint8_t p = -1;
    Serial.println("Waiting for valid finger to enroll");
    while (p != FINGERPRINT_OK)
    {
    p = finger.getImage();
    switch (p)
    {
    case FINGERPRINT_OK:
    #if !defined (VB)
    Serial.println();
    #endif
    Serial.println("Image taken");
    break;
    case FINGERPRINT_NOFINGER:
    #if !defined (VB)
    Serial.print(".");
    #endif
    break;
    default:
    #if !defined (VB)
    Serial.println();
    #endif
    Serial.println("Unknown error");
    break;
    }
    }

    p = finger.image2Tz(1);
    switch (p)
    {
    case FINGERPRINT_OK:
    Serial.println("Image converted");
    break;
    }

    Serial.println("Remove finger");
    delay(1000);
    p = 0;
    while (p != FINGERPRINT_NOFINGER)
    {
    p = finger.getImage();
    }

    p = -1;
    Serial.println("Place same finger again");
    while (p != FINGERPRINT_OK)
    {
    p = finger.getImage();
    switch (p)
    {
    case FINGERPRINT_OK:
    #if !defined (VB)
    Serial.println();
    #endif
    Serial.println("Image taken");
    break;
    case FINGERPRINT_NOFINGER:
    #if !defined (VB)
    Serial.print(".");
    #endif
    break;
    default:
    #if !defined (VB)
    Serial.println();
    #endif
    Serial.println("Unknown error");
    break;
    }

    }

    p = finger.image2Tz(2);
    switch (p)
    {
    case FINGERPRINT_OK:
    Serial.println("Image converted");
    break;
    default:
    Serial.println("Unknown error");
    return p;
    }

    p = finger.createModel();
    switch (p)
    {
    case FINGERPRINT_OK:
    Serial.println("Prints matched!");
    break;
    case FINGERPRINT_ENROLLMISMATCH:
    Serial.println("Fingerprints did not match");
    return -1;
    break;
    default:
    Serial.println("Unknown error");
    return -1;
    break;

    }

    p = finger.storeModel(id);
    switch (p)
    {
    case FINGERPRINT_OK:
    Serial.println("Stored!");
    break;
    default:
    Serial.println("Unknown error");
    return p;
    break;

    }
    }

    int getFingerprintID()
    {
    p = -1;
    Serial.println("Waiting for registered ID");
    while (p != FINGERPRINT_OK)
    {
    p = finger.getImage();
    switch (p)
    {
    case FINGERPRINT_OK:
    #if !defined (VB)
    Serial.println();
    #endif
    Serial.println("Image taken");
    break;
    case FINGERPRINT_NOFINGER:
    #if !defined (VB)
    Serial.print(".");
    #endif
    break;
    default:
    #if !defined (VB)
    Serial.println();
    #endif
    Serial.println("Unknown error");
    break;
    }
    }

    p = finger.image2Tz();
    switch (p)
    {
    case FINGERPRINT_OK:
    Serial.println("Image converted");
    break;
    default:
    Serial.println("Unknown error");
    return -1;
    }

    p = finger.fingerFastSearch();
    switch (p)
    {
    case FINGERPRINT_OK:
    Serial.println("Found a print match!");
    break;
    case FINGERPRINT_NOTFOUND:
    Serial.println("Did not find a match");
    return -1;
    break;
    default:
    Serial.println("Unknown error");
    return -1;
    break;
    }

    digitalWrite(A1, HIGH);
    delay(500);
    digitalWrite(A1, LOW);
    delay(2000);

    Serial.print("Found ID #");
    Serial.print(finger.fingerID);
    Serial.print(" with accuracy value of ");
    Serial.println(finger.confidence);
    return finger.fingerID;
    }
  • serialawaible deki kısımların aynısı eğer butona basıldıysa şunları yap şeklinde ekleyeceksin koda.
  • exit status 1
    hatası verdi bu seferde , silme fonksıyonu için örnek kod yazabılırmısınız?
  • buton kodunuz nasıl
  • int buton1=13;
    int buton2=12;
    int buton3=11;

    pinMode(13,INPUT);
    pinMode(12,INPUT);
    pinMode(11,INPUT);

    butonları böyle tanımladım

    if(digitalRead(buton1)==HIGH)
    {
    Serial.println("Delete all ID records");
    finger.emptyDatabase();
    delay(50);
    EEPROM.write(0,-1);

    ondan sonrada böyle her fonksıyon ıcın yazdım ama olmadı , hata vermeden derlenıyor ama calısmıyor

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.