Je suis à la recherche d'aide ou d'un conseil.
J'arrive à enregistrer mes données sur carte midcroSD dans un tableau toutes les 20s qui est situé dans mon void loop().
Maintenant, j'aimerai créer un nouveau tableau qui s'enregistre toutes les 30min par exemple.
Bref, il me faut deux tableaux enregistrés sur carte SD :
un toutes les 20s (celui-ce est enregistré dans le Void loop
l'autre toutes les 30min
Est ce possible?
Si oui comment faire svp?
Merci d'avance pour votre aide,
Cordialement,
Pierre
Oui, mais plus tu en dire sur ce que tu veux faire, plus la réponse sera précise.
Il est souvent bon de donner le code de départ du projet. On ne sait pas par exemple d'où viennent les données dans le premier et le deuxième tableau, si un tableau efface le précédent, si le tableau des 30mn remplace celui des 20s ...etc.
Il peut être utile de consulter Les bonnes pratiques du Forum Francophone qui montre quels sont les renseignements à donner pour avoir un maximum de réponses et pour avoir des réponses plus ciblées.
Une possibilité: comme 30mn c'est exactement 90 fois 20s, on peut chaque 20s ou l'on écrit un tableau, incrémenter un comptage. Si le comptage arrive à 90, on le repasse à 0, et on écrit le tableau pour les 30mn.
votre architecture de code pourrait ressembler à cela:
unsigned long chrono20Secondes;
unsigned long chrono30Minutes;
int donnees;
void lireDonnees() {
donnees = random(0, 100); // ici mettre le vrai code de lecture de données
}
void ecrireDonnees(const char * nomDeFichier) {
// ici écrire les données dans le fichier
}
void setup() {
Serial.begin(115200); Serial.println();
}
void loop() {
if (millis() - chrono20Secondes >= 20000ul) {
chrono20Secondes = millis();
// effectuer ici l'enregistrement des données 20 s
lireDonnees();
ecrireDonnees("20sec.csv");
}
if (millis() - chrono30Minutes >= 1800000ul) {
chrono30Minutes = millis();
// effectuer ici l'enregistrement des données 30 min
lireDonnees();
ecrireDonnees("30min.csv");
}
}
on utilise millis() pour faire un code non bloquant et déclencher la lecture des données et l'écriture dans le bon fichier lorsque la tempo est terminée. (code tapé ici absolument non testé et il manque bien sûr plein de trucs)
merci beaucoup pour l'information.
C'est un peu ça l'idée que j'aimerai réaliser et surtout faire des moyennes toutes les 30min et les mettre dans second tableau.
dans le cas "20s" vous lisez la donnée et la stockez puis vous l'ajoutez à une variable somme du bon type et incrémenter une variable compteur de 1.
dans le cas "30min" vous divisez somme par compteur (si compteur est non nul) et écrivez le résultat dans votre fichier puis vous remettez somme et compteur à 0 pour recommencer le cycle
Merci d'éditer votre post pour rajouter les balises de de code, c'est quasiment illisible tel quel:
sélectionner la partie du texte qui correspond au code
appuyez sur l'icône </> dans la barre d'outils pour indiquer que c'est du code
(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)