sensor de huella con memoria sd

Necesito ayuda con respecto a lo siguiente :

Un sensor de huella lo conecte a un lcd y funciona perfectamente.

Ahora quiero agregar los datos del sensor en la memoria Sd conectándolo con Ethernet shield.

Agregue en el programa la inicialización de la tarjeta que no me da problemas, pero cuando quiero escribir información en la memoria sd el programa funciona....en parte pero no llega a grabar la información ni en el sensor ni menos en la tarjeta sd

el código para escribir en la tarjeta, fue agregado donde se guarda la información en el sensor:

p = finger.storeModel(id); if (p == FINGERPRINT_OK) {

//aca se agrego para escribir en la memoria sd myFile = SD.open("sensor.txt", FILE_WRITE);

//si abre : if (myFile) { Serial.print("Escribiendo sensor.txt..."); myFile.println("sensor 1, 2, 3."); // close the file: myFile.close(); Serial.println("done."); } else { //si no abre Serial.println("error openingsensor.txt"); }

// abriendo el archivo parar leerlo myFile = SD.open("sensor.txt"); if (myFile) { Serial.println("sensor.txt:");

while (myFile.available()) { Serial.write(myFile.read()); } // close the file: myFile.close(); } else {

Serial.println("error al abriri sensor.txt"); } /// terminada de grabar en sd

lcd.clear(); lcd.print(" Informacion Guardada"); delay(1000);

Serial.println("¡¡ informacion Guardada"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Could not store in that location"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error writing to flash"); return p; } else { Serial.println("Unknown error"); return p; }

Saludos. Ante todo a) Usa los tags, para el codigo es:

 [ code] TU CODIGO [ /code]

b) Coloca el código completo.

asi?

voy a probar nuevamente

sorry salio lo mismo.......

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <SD.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11,8, 7, 6, 5);
const int chipSelect = 4;
File myFile;
int x=0;
int y=0;
int getFingerprintIDez();
uint8_t getFingerprintEnroll(uint8_t id);



SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  
{
  lcd.begin(16,2); lcd.setCursor(0,0); lcd.print("Scanear Huella"); 
  pinMode(13,OUTPUT); 

pinMode(12,OUTPUT); 
pinMode(9,OUTPUT);
pinMode(11, OUTPUT); 
pinMode(0, OUTPUT);
pinMode(0, OUTPUT);// sd
pinMode(A0, INPUT);
 
  Serial.begin(9600);
  Serial.print("Iniciando SD card...");   // se imprime un letrero indicando el inicio 
 pinMode(4, OUTPUT);                    // se asigana el pin de control CS  
   
 if (!SD.begin(4)) {                    // se confirmar si la memoria esta inicializa  
   Serial.println("Iniciando fallida!"); // Si no fue inicializada se notifica  
   return; 
 } 
 Serial.println("inicializacion Hecha.");// si no hubo problemas se notifica   
  
   // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
     lcd.clear();
     lcd.print(" Inicializando"); 
     delay(1000); 
       Serial.println("encontrado sensor...!");
  } else {
    Serial.println("sensor no encontrado :(");
    while (1);
  }

 
   
}
void loop()                     // run over and over again
{
  lcd.clear();
     lcd.print(" Codigo="); 
     delay(1000);
  Serial.println("indique el codigo que desa guardar con la huella...");
  uint8_t id = 0;
  while (true) {
    while (! Serial.available());
   char c = Serial.read();
   if (! isdigit(c)) break;
   id *= 10;
 id += c - '0';
  }
 lcd.clear();
     lcd.print(id); 
     delay(1000);
  Serial.print("inscribiendo ID #");
  Serial.println(id);
  
  while (!  getFingerprintEnroll(id) );
}

uint8_t getFingerprintEnroll(uint8_t id) {
  uint8_t p = -1;
  Serial.println("esperando la huella para guardar");
   lcd.clear();
     lcd.print(" Esperando......¡"); 
     delay(1000);
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
     lcd.clear();
     lcd.print(" Imagen Tomada¡"); 
     delay(1000);
      Serial.println("Imagen Tomada por primera vez");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      break;
    default:
      Serial.println("Unknown error");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(1);
  switch (p) {
    case FINGERPRINT_OK:
      lcd.clear();
     lcd.print(" Convirtiendo Imagen¡"); 
     delay(1000);
      Serial.println("Convirtiendo Imagen");
      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;
  }
   lcd.clear();
     lcd.print(" Retire el dedo¡"); 
     delay(1000);
  Serial.println("Retire dedo");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
  }

  p = -1;
   lcd.clear();
     lcd.print(" ponga el dedo nueva....¡"); 
     delay(1000);
  Serial.println("Ponga el dedo nuevamente");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Tomando imagen");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.print(".");
      break;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      break;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      break;
    default:
      Serial.println("Unknown error");
      break;
    }
  }

  // OK success!

  p = finger.image2Tz(2);
  switch (p) {
    case FINGERPRINT_OK:
      lcd.clear();
     lcd.print(" convirtiendo imagen¡"); 
     delay(1000);
      Serial.println("convirtiendo imagen nuevamente");
      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.createModel();
  if (p == FINGERPRINT_OK) {
    lcd.clear();
     lcd.print(" Encontrada Relacion¡"); 
     delay(1000);
   
    Serial.println("Encontrada Relacion!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    Serial.println("Fingerprints did not match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }   
  
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
 
//  guarda en sd
  myFile = SD.open("sensor.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to sensor.txt...");
    myFile.println("sensor 1, 2, 3.");
	// close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error openingsensor.txt");
  }
  
  // re-open the file for reading:
  myFile = SD.open("sensor.txt");
  if (myFile) {
    Serial.println("sensor.txt:");
    
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
    	Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
  	// if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
    /// terminada
     lcd.clear();
       lcd.print(" Informacion Guardada"); 
     delay(1000);
    
    Serial.println("¡¡ informacion Guardada");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("Could not store in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("Error writing to flash");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }  
  
  
 
}

Hay otra persona que esta con el mismo tema, porque no lo contactas y unen esfuerzos? Esta en el foro, busca los Post de esta semana.

si lo contacte......

pero no hay nada todavía con respecto a sd...

pero yo creo que estoy agregando algo mal.....en el programa...... todo el resto funciona..pero cuando le doy las instrucción de que abra un archivo para que lea los datos de la tarjeta...el programa falla

saludos