leer caracteres SD y guardar en un vector (SOLUCIONADO)

Hola!
Tengo un archivo de texto en una SD, en el cual esta escrito lo siguiente:

hola
adios

He hecho un programa con el que quiero leer los caracteres de "hola" y guardarlos en un vector para luego hacer cosas con ellos, por ejemplo en este programa volver a escribirlos. Cuando lo ejecuto, lo único que hace es inicializar la tarjeta, nada más!! No se si no uso las instrucciones adecuadas o cual puede ser el problema....Alguien tiene alguna idea? como no pase de aquí difícilmente voy a poder hacer mi proyecto...

Gracias de antemano.

Aquí está mi programa:

#include <SoftwareSerial.h>
#include <SD.h>

const int chipSelect = 53; // en Mega, 53 es el pin CS (en la mayoria 10)
char linea[6];
int i;
int imax;
char dato;

void setup(){

Serial.begin(9600);
Serial.print("Initializing SD card...");
pinMode(53, OUTPUT); // se debe configurar como salida pq sino la libreria SD no funcionará

if (!SD.begin(chipSelect)) { //comprueba si la tarjeta está presente y puede ser inicializada
Serial.println("Card failed, or not present"); //si entra es que la tarjeta no se inicializa
return; // no se hace nada más
}
Serial.println("card initialized.");

File dataFile = SD.open("hola.txt"); // se abre el archivo(sólo se puede abrir uno al mismo tiempo)

if (dataFile) { //si el archivo esta abierto, se escribe en el
while (dataFile.available()) {
Serial.write(dataFile.read());
}
dataFile.close();
}
else {
Serial.println("error opening hola.txt"); //si no se ha abierto el archivo da error
}

i=0;
dato=dataFile.read();
while (dato!='\n'){
linea*=dato;*

  • imax=i;*

  • i++;*

  • dato=dataFile.read();*

  • }*
    }

  • void loop(){*

  • for (i=0; i<imax; i++){*
    _ Serial.print(linea*);_
    _
    }_
    _
    }*_

He encontrado el fallo!! :smiley:

el error estaba en la inicialización de la SD. Quitando el trozo en rojo funciona!!!

Serial.begin(9600);
Serial.print("Initializing SD card...");
pinMode(53, OUTPUT); // se debe configurar como salida pq sino la libreria SD no funcionará

if (!SD.begin(chipSelect)) { //comprueba si la tarjeta está presente y puede ser inicializada
Serial.println("Card failed, or not present"); //si entra es que la tarjeta no se inicializa
return; // no se hace nada más
}
Serial.println("card initialized.");

File dataFile = SD.open("hola.txt"); // se abre el archivo(sólo se puede abrir uno al mismo tiempo)

if (dataFile) { //si el archivo esta abierto, se escribe en el
while (dataFile.available()) {
Serial.write(dataFile.read());
}
dataFile.close();
}
else {
Serial.println("error opening hola.txt"); //si no se ha abierto el archivo da error
}

Ahora ya me escribe en la consola hola!!!