La mémoire disponible faible, des problèmes de stabilité pourraient survenir.

Bonjour

J’ai réalisé avec les modules qui me restaient une petite station meteo. L’ensemble fonctionne, mais j’ai l’erreur dans le titre qui me chagrine.

Évidemment, j’ai pioché des bouts de code à droite et à gauche et c’est pas vraiment optimisé ni très propre.

Pourriez vous y jeter un œil pour me dire ce qui pourrait être optimisé .
En attendant, je vais tout souder sur une stripboard…

Merci d’avance Olivier

/*horloge liquidcristal +  bmp280 +  sdcard + rtc

   Le Lcd affiche la température et la pression.
   Le premier click fait apparaitre la température max et min ( remise à zero avec un appui long)
   Un second fait apparaitre la date et l'heure
   Un troisième click fait apparaitre un graphique de la pression prise toute les heure (raccourci par double click )
   quatrième click  (a venir, affichage les données lues sur la sdcard)
   cinquème click : affichage du "credit"
   L'ecran se met en veille au bout de 15 secondes
   enregistrement pression et temperature sur la sdcard toute les heures

   pin CS du module sdcard sur pin 10 de l'arduino
   le bmp et le module rtc sont sur le port i2c
   pin 16 de l'ecran LCD ( a relier normalement au gnd )
*/

horloge_meteoV2.ino (9.07 KB)

Le tableau daysOfTheWeek contient des chaines de 3 caractères donc il n'y a aucun intérêt à dimensionner 12 caractères pour elles. Un tableau [7][4] suffirait.
Tu déclares des tableaux ( barre1 à barre8 ) en global alors qu'ils ne sont utilisés qu'une fois dans une fonction à l'initialisation.
Le plus simple serait de forcer le placement de tous les tableaux constants en mémoire programme. Voir là PROGMEM - Arduino Reference
La librairie SD consomme pas mal de mémoire mais là tu n'y peux pas grand chose.