Avez vous des délais à tenir ou des engagements?
si oui, la solution d'Artouste peut être vue comme une belle boîte noire clés en main, avec des chances de fonctionner non liées à la bonne volontés d'autres personnes (qui peuvent tomber malades, avoir des engagements, essayer de règler des problèmes d'amis, etc...)
sinon, développer soi même est la meilleure solution pour apprendre ... à son rythme, en sériant les problèmes.
Je vais me placer dans la première hypothèse:
il y a une ligne à modifier(no 15),
const uint8_t PIN_LIST[] = {0, 1, 2, 3, 4};
(le nombre de pattes à gérer en est déduit, en première lecture, très proprement.
et une autre ligne qui correspond à la cadence d'échantillonnage (no 33)
// Sample rate in samples per second.
const float SAMPLE_RATE = 5000; // Must be 0.25 or greater.
Je suis à peu près sûr qu'il stocke tel quel, sans la moindre operation (peut être faut il faire la conversion au dépouillement, en temps différé....)
Il assure automatiquement la renumerotation des fichiers...jusqu'à 99 (lignes 696)
le nom des fichiers est fixé ligne 76
Tout ça , c'esr séduisant
Ce qui l'est moins, c'est ça :
#if RAMEND < 0X8FF
#error
#endif
(sur un arduino uno, c'est inquietant -pour le librairie ou pour moi); un arduino mega 2560 a ce qu'il faut (et plus il a de buffers, plus il est rapide)
Il a besoin d'une liaison serie (pour déclencher le log, convertir son fichier binaire en csv, ou transmettre les données sur la jonction série; les appels à Serial sont un peu partout, ceux où il dialogue (on peut très bien emettre "en l'air") sont assez localisés.
Dans une première étape -5000 échantillons /seconde: cela fait 1E4 octets à stocker en binaire; par jour, cela fait 1E5*1E4 1 Giga: ce n'est pas délirant de stocker tout, le temps que les commandes soient modifiées...
Toute la logique du loop est à adapter (en gros, il enregistre ou convertit les binaires en csv)
Je pencherais toujours vers la modification de cet exemple.... en le testant tel quel, et en lui ôtant lentement des fonctionnalités