fingerprint

Vorrei sapere se qualcuno sa come spegnere il led che è presente nel modulo, visto che ho notato che scalda parecchio (https://it.aliexpress.com/item/FPM10A-Fingerprint-Reader-Sensor-Module-Optical-fingerprint-Fingerprint-Module-For-Arduino-Locks-Newest/32815608769.html?spm=a2g0s.9042311.0.0.cCgbzd) modulo

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

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
// uncomment this line:
// #define mySerial Serial1

// 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)
// comment these two lines if using hardware serial

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);

  
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  
{
  pinMode(8, OUTPUT);
  digitalWrite (8, HIGH);
  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);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) { delay(1); }
  }

  finger.getTemplateCount();
  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
  Serial.println("Waiting for valid finger...");
}

void loop()                     // run over and over again
{
  getFingerprintIDez();
      
   digitalWrite (8, HIGH);

   ;//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.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); 

  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!
   digitalWrite (8, LOW);
   delay(100);
  Serial.print("Found ID #"); Serial.print(finger.fingerID); 
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  return finger.fingerID; 
}

...una martellata ben data? :smiley:

no mi spiace oltre che aggiungerci in serie una resistenza ma se è smd... la vedo dura

a sto punto non so se optare nel cercarle tutte in modo di spegnere il led, ho applicare un piccolo dissipatore dietro (anche se realmente credo abbia poca utilità qualora dovrà restare acceso 24h su 24h)

toros04:
Vorrei sapere se qualcuno sa come spegnere il led che è presente nel modulo, visto che ho notato che scalda parecchio ...

Ma sei sicuro che, anche avendo teoricamente accesso, si "possa" spegnere? ... non è che è il LED usato per lîlluminazione del polpastrello e la lettura ottica dell'impronta (e quindi deve essere abbastanza luminoso) e che ... se lo spegni non funzona più un bel nulla?

Del resto le caratteristiche di quell'oggetto danno chiaramente: corrente alimentazione attorino ai 120mA con 140mA di picco ... metti fossero già solo costantemente 100mA a 5V ... è 1/2W da dissipare, quindi è normale che scaldi.

Guglielmo

gpb01:
Ma sei sicuro che, anche avendo teoricamente accesso, si "possa" spegnere? ... non è che è il LED usato per lîlluminazione del polpastrello e la lettura ottica dell'impronta (e quindi deve essere abbastanza luminoso) e che ... se lo spegni non funzona più un bel nulla?

a questo diciamo che ci avevo pensato, ma cercando anche su internet non ho trovato nulla di esaustivo a riguardo

... ho guardato la documentazione, è chiaramente il LED per l'illuminazione del polpastrello, dato che stiamo parlando di un sensore ottico e non capacitivo !

E ripeto ...
.... bastava che leggessi le specifiche tecniche per vedere quanto assorbiva e, di conseguenza, quanto dissipava :wink:

Guglielmo

gpb01:
E ripeto ...
.... bastava che leggessi le specifiche tecniche per vedere quanto assorbiva e, di conseguenza, quanto dissipava :wink:

ammetto di averlo comprato senza aver letto del tutto la documentazione, qualche consiglio per dissipare il calore?

toros04:
... qualche consiglio per dissipare il calore?

Se lo fissi su una basetta di allumino? O direttamente su un dissipatore per transistor di potenza ? ... ne trovi di tutte le forme e dimensioni :slight_smile:

Guglielmo

Metterci un qualcosa a fianco (un sensore infrarossi o qualcosa del genere) per attivarlo solo quando lo usi ?
Ovviamente dipende da cosa devi farci e se il sensore te lo permette.