salut il y a quelque temps j'avais le me souci que toi pour mon projet , je ne suis pas une bon programeur j'ai donc bidouiller ça si cela peut t'aider
le code de sauve garde sur la SD:
void saugardeConfig(){
//---- efface l'ancien fichier au préalable ---
test=SD.remove("save.txt"); // efface fichier et mémorise résultat opération
if (test==true) {
lcd.drawText(5,5,"Ancien fichier efface",1,COLOR_BLACK,couleur_fond );//Serial.println("Fichier efface");
}; // affiche message si fichier bien effacé
file = SD.open("save.txt", FILE_WRITE); // ouvre le fichier en écriture// NB : le fichier est créé si il n'existe pas !
//---- test si fichier dispo en écriture
if (file==false) {
lcd.drawText(5,20,"Erreur ouverture fichier !",1,COLOR_BLACK,couleur_fond );//Serial.println ("Erreur ouverture fichier !")
;
} // si fichier pas dispo
else {
lcd.drawText(5,30,"Nouveau fichier pret pour ecriture !",1,COLOR_BLACK,couleur_fond ); //Serial.println ("Fichier pret pour ecriture !");// si le fichier existe et est ouvert
// premiere ligne du fichier CSV - entete avec liste des champs
//Serial.println ("ecriture A");
file.print("TCH_chauffage_Piece=");
file.print(TCH_chauffage_Piece);
file.println(";");
//pour le cas ou la variable n'est pas un float on convertie le int en float
file.print("B=");
file.print(float(B));
file.println(";");//
lcd.drawText(5,60,"Fin enregistrement !",1,COLOR_BLACK,couleur_fond );//Serial.println("Fin enregistrement !");
file.close(); // ferme le fichier
lcd.drawText(5,90,"Fermeture fichier !",1,COLOR_BLACK,couleur_fond );//Serial.println("Fermeture fichier !");
delay(2000);
};
lcd.clear(couleur_fond);
selecteurPage=1;
return;
}
et pour la restoration des donné :
void restorConfig(){
file = SD.open("save.txt", FILE_READ); // ouvre le fichier lecture
if (file==false) {
lcd.drawText(5,75,"Erreur ouverture fichier !",1,COLOR_BLACK,couleur_fond );//Serial.println ("Erreur ouverture fichier !");
}// si fichier pas dispo
else {
// si le fichier existe et est ouvert
lcd.drawText(5,95,"Fichier pret pour lecture !",1,COLOR_BLACK,couleur_fond );//Serial.println ("Fichier pret pour lecture !");
lcd.drawText(5,115,"Lecture fichier",1,COLOR_BLACK,couleur_fond );
delay(1000);
lcd.clear(couleur_fond);
unsigned long i;
float valeur;
byte y=0;
int a=0;
for (i=0;i<=(file.size());i=(file.position()+1L)){
file.seek(i);
valeur=file.parseFloat ();
a=a+1;
lcd.printOptions(1, COLOR_BLACK, couleur_fond);
lcd.printXY(0,y);
switch(a){
case 1:
TCH_chauffage_Piece=valeur;
lcd.print("TCH_chauffage_Piece");
break;
case 2:
B=valeur;
lcd.print("B");
break;
};
lcd.print(" val:");
lcd.print(valeur);
lcd.print(" a:");
lcd.print(a);
y=y+15;
if (y>220){
lcd.clear(couleur_fond);
y=0;
};
delay(100);
}
lcd.clear(couleur_fond);
lcd.drawText(5,105,"Fermeture fichier !",1,COLOR_BLACK,couleur_fond );//Serial.println("Fermeture fichier !");
lcd.drawText(5,125,"Restauration terminer",1,COLOR_BLACK,COLOR_GREEN );//Serial.println("Fermeture fichier !");
file.close();
};
delay(1000);
lcd.clear(couleur_fond);
}
beaucoup de partie du code serve a afficher les valeur a l'ecrant
en esperant que sa te soit utile!