[SD] Nom de fichier avec l'heure

Bonjour,

J’aimerais pour un projet arduino crée un fichier log, qui aurait pour nom, la date, et l’heure de la création (grâce au RTC)

Comment pourai-je faire ?

Merci

#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;
File fichierlog;
File myFile;
char FileName;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
    Wire.begin();
    rtc.begin();
      if (! rtc.isrunning()) {
    Serial.println("RTC ne fonctionne PAS!");
    // La ligne qui suit ajuste le RTC à la date et time du moment de compilation
    rtc.adjust(DateTime(__DATE__, __TIME__));
  }
  
  }

  

  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  //fichierlog = SD.open("/");

    DateTime now = rtc.now(); 

  Serial.println("done!");







FileName=now.day(),now.month();



 fichierlog = SD.open(FileName, FILE_WRITE);

 if(fichierlog) {
    Serial.println("Ecriture en cours");
    //Ecriture
    fichierlog.print(
      now.year(), DEC);
    fichierlog.close();



  } 
    
}

void loop() {
  // nothing happens after setup finishes.
}

Ce genre de chose ne fonctionne pas

FileName=now.day(),now.month();



 fichierlog = SD.open(FileName, FILE_WRITE);

Bonjour,

Tu déclares FileName comme un char[]

char FileName[20];

Ensuite

  sprintf(FileName,"%02d%02d",now.day(),now.month());

ça fonctionne mais pas avec plus de paramètres. Ou alors j'utilise mal la fonction ? Il y a trop de paramètres pour la fonction ? C'est long à traiter ??

sprintf(FileName,"%02d%02d%02d%02d%02d%02d",now.year(),now.month(),now.day(),"_",now.hour(),now.minute(),now.second());

Si tu as une chaine constante, il faut la mettre dans le format

sprintf(FileName,"%02d%02d%02d%_02d%02d%02d",now.year(),now.month(),now.day(),now.hour(),now.minute(),now.second());

Tu aurais aussi faire comme tu as fait (ça ne présente pas d'intérêt avec une chaine constante), le format aurait alors été "%02d%02d%02d%%s02d%02d%02d"

Avec la librairies SD, les noms de fichiers sont limités en taille. Ils doivent respecter la forme 8+3. 8 caractères pour le nom 3 caractères pour l'extension

Attention, la lib SD utilise le format 8.3 pour le nom des fichiers.

https://www.arduino.cc/en/Reference/SD

fdufnews, réponse en même temps, désolé.

fdufnews:
Avec la librairies SD, les noms de fichiers sont limités en taille. Ils doivent respecter la forme 8+3.
8 caractères pour le nom
3 caractères pour l’extension

Effectivement, c’est ça qui bloque.

Il n’y a pas moyen d’augementer cette taille en passant par une autre librairie ?

Oui, la lib SdFat: