Buonasera a tutti,
dovrei salvare su scheda SD una serie di dati che mi arrivano da vari sensori con un rate di 1 minuto. Oltre a ciò vorrei scrivere anche un file di log per eventuale debug.
Sto usando la libreria SD.h con un arduino uno R4 wifi ed una scheda datalog acquistata da AZ-Delivery:
Il problema è che, sembra in maniera random, qualche volta qualche scrittura da errore e altre no. Le routines che scrivono sono solo due che altro non fanno che aprire il canale e scrivere una stringa di caratteri.:
void writedatalog(int codice, const char *dati){
myFiledata = SD.open(datalog, FILE_WRITE);
if (myFiledata) {
myFiledata.println(dati);
myFiledata.close();
Serial.println("scrittura ok su file.");
} else {
Serial.println("errore su file ");
}
}
void writeerrorlog(int codice, const char *errore){
myFileerror = SD.open(errorlog, FILE_WRITE);
if (myFileerror) {
myFileerror.println(errore);
myFileerror.close();
Serial.println("scrittura ok su error.");
} else {
Serial.println("errore su file errori");
}
}
Nel loop ci sono parecchie operazioni di recupero dati da varie sonde e varie chiamate ala routine che scrive per salvare dati e stato.
Mi chiedo se non ci sia un qualche tipo di "consiglio" da seguire o se c'è altro hardware più stabile...oppure bisogna accontentarsi...
Io ho seguito gli esempi e, d'altra parte, non ci sono particolari complicazioni nell'utilizzo.
Grazie.