Merci Lionel c'est une excellente idée.
Concernant les cartes SD utilisées, j'en ai 3 actuellement :
1) 1 carte SD 256Mo TOSHIBA => accès super lent (3à 5s pour écrire une ligne)
2) 1 carte micro SD 512Mo KINGMAX avec son adaptateur => ca marchait bien (temps d'accès <1s) jusqu'à ce que je n'arrive même plus à la lire sur PC
3) 1 carte micro SD 2Go marque inconnue => a l'air de remarcher par mirâcle après le même problème qu'en 2)
l'arduino utilisée est une UNO REV.2 + shield mémoire uniquement (pas d'autres shields)
OS: windows 7 64 bits
code utilisé :
- Code: Tout sélectionner
boolean SDCARD;
SDCARD=SD.begin(chipSelect);
// ENREGISTREMENT DES DONNEES
if (SDCARD) {
String dataString = "";
DateTime moment = RTC.now();
datastring=String(moment.hour(),DEC)+':'+String(moment.minute(),DEC)+':'+String(moment.second(),DEC)+' ';
datastring += String(TEMP_en_deg)+' ';
datastring += String(ISTACK_en_A)+' ';
datastring += String(NIVEAU,DEC)+' ';
datastring += String(RELAIS,DEC)+' ';
datastring += String(VENTI,DEC)+' ';
datastring += String(ALMCELL,DEC)+' ';
datastring += String(BOUTON,DEC)+' ';
datastring += String(ALARME,DEC);
digitalWrite(9, HIGH);
fichier = SD.open("data.txt", FILE_WRITE);
if (fichier)
{
fichier.println(datastring);
fichier.close();
}
digitalWrite(9, LOW);
}
P.S : je déclare tout ce qui faut pour le shield memoire j'ai juste pas fait le copier coller. Les valeurs enregistrées sont soit des int ou des booleans.
j'ai mis un if (SDCARD) pour enregistrer uniquement si la carte est insérée.
j'allume la led du shield pendant les accès disque pour voir leur durée
j'ai volontairement allégé le copier coller de mon programme pour plus de clarté, j'ai laissé que la partie enregistrement (la où ca plante)
en clair ca plante juste avant (au moment de la construction de la string) ou pendant (led allumée)
je continue mes essais en modifiant la façon de faire la string, peut être une piste à ce niveau la
ca pourrait ressembler à un problème de mémoire vive qui sature ?