Récupérer données sur carte sd (csv) et faire une moyenne

Bonjour à tous, je galère pas mal.
J'aimerai récupérer ,au démarrage de l'arduino, les données contenu dans un fichier CSV sur carte SD (créé par l'arduino) et que celui ci me calcule la moyenne des données contenues dans la colonne 1 par exemple pour ensuite affiché le résultat soit dans la console soit sur l'écran.
Est ce possible ? si oui pouvez vous m'aiguiller pour la réalisation ?
Voici le code de création du fichier, et une copie du fichier CVS (renommer en .txt pour pouvoir le poster sur le forum) créé à chaque utilisation du programme
Merci d'avance
DONNEES.txt (383 Octets)

// Enregistrement de ces données sur la carte SD
    monFichier = SD.open(nomDuFichier, FILE_WRITE);
    if (monFichier) {
      monFichier.print(String(level));
      monFichier.print(";");  // Délimiteur du fichier CSV
      monFichier.print(String(reussi));
      monFichier.print(";");  // Délimiteur du fichier CSV
      monFichier.print(String(rate));
      monFichier.print(";");
      monFichier.print(String(bestreaction));
      monFichier.print(";");  // Délimiteur du fichier CSV
      monFichier.println(String(moyreaction));
      monFichier.close();  // L'enregistrement des données se fait au moment de la clôture du fichier
      LCD.clear();
      LCD.setCursor(0, 1);
      LCD.print("save SD ok");
      delay(500);

Bonjour, oui c'est possible, tu lis ton fichier ligne par ligne et sur chaque ligne tu extrait la/les valeur(s) qui t'intéresse.
Tu convertis la valeur extraite en entier et tu l'ajoute à une variable contenant la somme de la colonne que tu as lu.
A la fin tu divise par le nombre de ligne lu ou tu peux faire la moyenne à chaque ligne aussi.

Si tu but sur certain aspects, n'hésite pas à poser des questions.

Salut, et merci à toi !
comment lire le fichier ligne par ligne ? comment extraire les valeurs? et surtout comment savoir le nombre de ligne du fichier, car à chaque utilisation une ligne est ajoutée.
(je suis débutant comme tu peu le voir)
merci d'avance

Comment tu as fait pour trouver le code pour écrire ton fichier ?

De la même façon, la librairie que tu utilise doit avoir des exemples pour lire un fichier.
Par contre a priori la librairie SD ne dispose pas de fonction de lecture ligne par ligne(readln ou équivalent).
Il faut donc lire caractère par caractère.

Je ne sais pas si SDFat n'est pas plus facile à utiliser?

SdFat dispose d'une fonction de lecture ligne par ligne, nommée fgets().

Avec strtok(), par exemple.

En comptant le nombre de fois où fgets() retourne une longueur différente de ZÉRO.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.