Memoria SD Guarda solo 2kb en el txt

Buenas…!

Me encuentro programando con ayuda de Arduino Duemilanove y la shield para memoria SD.

En leer y capturar datos a la SD no tiene problemas, la bronca viene que de “miles” de datos guardados en el archivo .txt solo se quedan 2kb, los demás datos se pierden.

¿Alguna idea de que pueda suceder?

nota: no tengo ciclos for que estén limitando la cantidad de datos.

De antemano gracias :slight_smile:

SD_arduino.txt (2.83 KB)

Quise corroborar que no fuera algún “bug” de la librería. Para esto, probé el siguiente código:

#include <SPI.h>
#include <SD.h>

void setup() {
  Serial.begin(9600);
  if (!SD.begin(4)) {
    Serial.println(F("SD fail"));
    while (1);
  }
  if (SD.exists("testtext.txt")) {
    SD.remove("testtext.txt");
  }
  File text = SD.open("testtext.txt", FILE_WRITE);
  if (!text) {
    Serial.println(F("File fail"));
    while (1);
  }
  Serial.println(F("Testing..."));
  unsigned long pTime = millis();
  for (unsigned int i = 0; i < 65534U; i++) {
    text.print("Line ");
    text.println(i + 1);
  }
  text.close();
  unsigned long aTime = millis();
  Serial.print(F("Done in "));
  Serial.print(aTime - pTime);
  Serial.println(F(" milliseconds."));

}

void loop() {
  // put your main code here, to run repeatedly:

}

Y el monitor serie me imprimió lo siguiente:

Testing...
Done in 29408 milliseconds.

Ejecutado con un Arduino Nano.

Lo que hice fue escribir texto a un archivo, pero unas 65534 veces. El archivo resultante tiene un tamaño de 775302 bytes (757 KB).

Por lo tanto, a ti te pudo haber pasado lo siguiente:

  • Memoria llena.
  • Se bloqueó la escritura durante el proceso.
  • Conexiones flojas.
  • Tarjeta SD defectuosa.
    Revisa a ver si alguna de estas fue la causa…

PD (dato irrelevante al problema): con este código, la velocidad promedio de escritura, fue de aprox. 26 KB/s.