Aide sur la prog - Arduino Duemilanove + module SD

Bonjour,
Je suis entrain de faire un programme qui permet d'écrire, de lire et d'effacer des fichiers sur une carte SD avec l'intermédiaire du Serial Monitor. Le but est de pouvoir taper le texte à écrire dans le fichier et de choisir le nom du fichier à crée, lire ou effacer. Le problème c'est que j'arrive à écrire ce que je souhaite dans un fichier, mais pas à choisir le nom du fichier en le tapant sur le pc comme je fais pour écrire le texte qui se trouve dans le fichier.

Voici le programme :

#include <SdFat.h>
#include <SdFatUtil.h>

// --- Déclaration des objets utiles pour les fonctionnalités utilisées ------------------------
Sd2Card card; // création d'un objet Sd2Card
SdVolume volume; // création d'un objet SdVolume
SdFile root; // création d'un objet SdFile pour le répertoire racine
SdFile file; // création d'un objet SdFile pour le fichier utilisé

//----Déclaration des variables------------------------------------------------------------------
int testSD; //utilisé pour les tests des fonctions
int incomingByte ;

//-----Déclaration des prototypes----------------------------------------------------------------
void ecriture(void);
void lecture(void);

//------- Initialisation fonctionnalités utilisées ----------------------------------------------
void setup()
{
Serial.begin(115200); // configuration de la liaison série (usb) à 115 200 bps
card.init(SPI_HALF_SPEED); // initialise la carte SD à la vitesse voulues
volume.init(&card) ; // initialise le volume FAT de la carte SD
root.openRoot(&volume) ; // ouverture du répertoire root
}
//-----Boucle-Programme------------------------------------------------------
void loop()
{

Serial.println(); //saut de ligne
Serial.println("Debut du programme");
Serial.println("Entrer un caratere pour commancer");
Serial.println(); //saut de ligne
while(!Serial.available()); //attente d'un envoie de donnée pour continuer
Serial.flush();

void ecriture(void);
void lecture(void);

Serial.println();
Serial.println("Fin");

}
// -------------------Fonction ecriture------------------
void ecriture(void)
{

if (!root.isOpen()) // si root pas ouvert, on l'ouvre
{
root.openRoot(&volume);
}

char nomFichier[] = "0000000.TXT"; //Creation du fichier
for (uint8_t i = 0; i < 100; i++) //incrementation du nom du fichier
{
nomFichier[5] = i/10 + '0';
nomFichier[6] = i%10 + '0';
if (file.open(&root, nomFichier, O_CREAT | O_EXCL | O_WRITE)) break;
}
if (!file.isOpen()) Serial.print("Erreur");

Serial.print("Ecrire dans : ");
Serial.println(nomFichier);
Serial.println("Taper le texte a ecrire");
while(!Serial.available());
char myStr[Serial.available()];
while (Serial.available() > 0)
{
for (int i = 0; i < sizeof(Serial.available()); i++)
{
incomingByte = Serial.read();
delay(1);
myStr*=incomingByte;*
_ Serial.print(myStr*);_
_ file.print(myStr);_
_
}
_
* }*
* Serial.flush(); *
* Serial.println();*
* file.close(); *
}
//------------Fonction lecture----------------------------------------
void lecture(void)
{
* file.open(&root, nomFichier, O_READ);
_
char c; // variable de reception données lues*_
* while ((c = file.read()) > 0) Serial.print(c);*
* file.close();*
}
[/color]
Le problème se situe sur le file.open(&root, nomFichier, O_READ); Pour nomFichier je voudrais pouvoir le taper a l'ordinateur.
Je voulais savoir aussi si c'était possible d'effacer tout les fichiers existants sur la carte ?
Merci d'avance pour votre aide !

j'ai fais un test tout simple qui consiste à envoyer un mot via le Serial Moniteur. Le programme l'enregistre dans un tableau (Serial.read dans une boucle), puis au moment de l'afficher (Serial.println(valeur)), il me renvoie seulement le dernier caractère...

Essaie ça :

String maString;

for(int i=0;i<=sizeof(tableau);i++){
  maString += tableau[i];
}

(Sans garantie) ::slight_smile: