Go Down

Topic: Almacenar arreglo de datos en micro SD (Read 571 times) previous topic - next topic

HueroOeC

Jul 27, 2020, 08:50 am Last Edit: Jul 27, 2020, 08:59 am by HueroOeC
Hola.

Estoy realizando una lectura de datos de un sensor con un arduino mega, estos datos los estoy almacenando en un arreglo para posteriormente almacenarlos en una tarjeta micro SD.

El problema es que estoy realizando la lectura de 1000 datos, pero en el archivo generado solo se almacenan 4 datos o menos.  El código es el siguiente:

Código de inicialización de la micro SD:

Code: [Select]

if (!SD.begin(53))
  {
    Serial.println("No se pudo inicializar la SD");
    return;
  } else {
    Serial.println("SD inicializada");
  }

  if (!SD.exists("datalog.csv"))
  {
    myFile = SD.open("datalog.csv", FILE_WRITE);
    if (myFile) {
      myFile.println("ecg,tiempo");
      myFile.close();
    } else {

      Serial.println("Error creando el archivo datalog.csv");
    }
  }



Código para la escritura de datos:

Code: [Select]

void Loop(){
  
if(condicional_inicio_de_escritura_de_datos){
  myFile = SD.open("datalog.csv", FILE_WRITE);//abrimos  el archivo

    if (myFile) {
      while(cont!=1000){
        myFile.print(arreglo_ecg[cont]);
        myFile.print(",");
        myFile.println(cont);

        myFile.close(); //cerramos el archivo

        Serial.print("ecg=");
        Serial.print(arreglo_ecg[cont]);
        Serial.print(",tiempo=");
        Serial.println(cont);
        cont++;
        delay(10);
      }

    } else {
      // if the file didn't open, print an error:
      Serial.println("Error al abrir el archivo");
    }

//Condicional para terminar la lectura de datos
   }
}



Por puerto serie se muestra de manera correcta los datos que se supone deberían almacenarse.

Código del array:
Code: [Select]

void lecturas(){
//int arreglo_ecg[1000]; Variable global
//int i=0 Variable global
 while (i != 1000) {
    arreglo_ecg[i] = analogRead(A0);
    i++;
    delay(5);
  }
}


HueroOeC

Solución: Sacar la línea

Code: [Select]

myFile.close()


Del bucle.

Go Up