Arduino, probleme de tableau

a marqué ce sujet comme résolu.

Bonjour!

Je suis actuellement en train de faire un petit dispositif arduino qui prend des mesures via un capteur toutes les 10ms, dans le cadre d’un exercice de qui peut durer jusqu’à 5 min. J’aimerais pouvoir stocker chaque valeur lue pendant l’exercice, dans un tableau. L’idée est qu’a la fin des 5 min, j’affiche un graphique fait a partir des données du tableau.

Mon problème c’est que j’aimerais que, suivant si je fais un exercice de 2 min ou de 5 min, la taille du tableau s’adapte tout seul. Qu’en gros, à chaque nouvelle mesure, le tableau s’agrandisse d’une case et que dans cette case soit enregistrée la valeur qu’on vient de lire.

Je suis pas super a l’aise avec les tableaux, alors je vous demande de l’aide :x si vous aviez un exemple de code qui fasse ça, ou bien une autre façon de faire? Merci d’avance si vous pouvez m’aider !

+0 -0

Ça fait pas mal de temps que j’ai pas fait de c++/Arduino mais je vois 2 solutions :

  • soit tu utilises un Vector (structure de donnée type tableau mais qui double de taille à chaque fois qu’il est plein) ;
  • soit tu alloue le nombre de cases max de ton tableau en début de programme (5min @10ms = 5x60x100 = 30000 cases), puis tu tronques ton tableau à la fin en fonction du nombre de valeurs enregistrées.
+1 -0

effectivement j’ai testé la 2e solution de Roipoussiere, et je n’avais pas assez de mémoire. du coup j’ai changé d’optique et je vais afficher une info differente, je devrais avoir un tableau de max 50 valeurs…

Mais du coup, le tableau dynamique ça n’existe pas sur arduino? genre la commande push_back() qui existe en c++?:/ (j’avoue ne pas avoir compris la technique avec les vecteurs :x)

effectivement j’ai testé la 2e solution de Roipoussiere, et je n’avais pas assez de mémoire. du coup j’ai changé d’optique et je vais afficher une info differente, je devrais avoir un tableau de max 50 valeurs…

Mais du coup, le tableau dynamique ça n’existe pas sur arduino? genre la commande push_back() qui existe en c++?:/ (j’avoue ne pas avoir compris la technique avec les vecteurs :x)

Nanalkol

Il existe des portages d’une micro STL sur arduino. Mais même si tu profites d’un environement STL like, tu restes contraint par la mémoire disponible (sachant que toute la mémoire existante n’est pas dédiée au tas). Le plus simple reste à mon avis de stocker puis de transmettre (voir de transmettre directement) à une station sol qui se chargera d’afficher.

A-312 > Une liste chaîné (en plus d’adopter un style java-like contraire à l’essentiel de ce qui se fait en C++) entraîne un surcoût de consommation mémoire. Sur PC on s’en fiche, quand on a 8Ko de mémoire, beaucoup moins.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte