Bonjour,
J'ai acheté un lecteur de carte SD pour Arduino. En effectuant des tests pour voir si tout fonctionnait bien, j'ai remarqué que l'arduino n'arrivait pas à créer plus de 5 fichiers. (Mes fichiers sont en extensions .mid).
Le contexte:
Ce programme est censé récupérer les données envoyées par mon piano et les stocker dans un fichier.
myScreen est un écran LCD.
BPS représente le PIN d'un bouton poussoir.
J'ai une fonction (checkFile) qui regarde quel est le nom du dernier fichier créer (par exemple s'il y a un fichier 1.mid il va créer le fichier 2.mid).
Ensuite cette fonction envoie le nom du fichier à une autre fonctino (writeMess) qui va créer le fichier.
Voici le programme que j'ai fait:
int i =0;
void checkFile(int i)
{
if (SD.exists( String(i) + ".mid") == true)
{
checkFile(i+1);
}
else
{
myScreen.clear();
myScreen.print("Check done");
myScreen.setCursor(0,1);
myScreen.print(String(i));
delay(1000);
writeMess(i);
}
}
void writeMess(int i)
{
char fileName[7];
fileName[0] = i +'0';
fileName[1] = '.';
fileName[2] = 'm';
fileName[3] = 'i';
fileName[4] = 'd';
fileName[5] = '\0';
myFile = SD.open(fileName, FILE_WRITE);
if(!myFile)
{
myScreen.clear();
myScreen.println("Erreur");
myScreen.setCursor(0,1);
myScreen.print(fileName);
delay(1000);
myScreen.clear();
return;
}
if(myFile)
{
myScreen.clear();
myScreen.print("Writing...");
myScreen.setCursor(0,1);
myScreen.print(fileName);
while(digitalRead(BPS)== 0)
{
/*message = MIDI.read();
myFile.print(message);*/
}
myFile.close();
}
myScreen.clear();
myScreen.print("Write done");
delay(1000);
myScreen.clear();
return;
}
Donc je rappel le soucis le programme créer bien les premiers fichiers et à partir du cinquième donc "4.mid" il n'arrive pas à créer le fichier et rentre donc dans le code à exécuter si le fichier ne peut pas être ouvert.