Dateinamen auf einer SD Karte

Hi,

ich habe ein Problem...

Ich möchte auf einer SD karte Messwerte speichern.
Diese Messwerte sollen jeweils in eine Datei gespeichert werden, welche einen eindeutigen Namen hat.

Messung_1.txt
Messung_2.txt
etc.

Ich habe folgenden Code:


#define CS_SD_PIN 9 
int file_counter = 0;
void setup() {
  pinMode(CS_SD_PIN, OUTPUT);
  digitalWrite(CS_SD_PIN, HIGH);
}

void loop() {
  if (!SD.begin(CS_SD_PIN)) {
  Serial.println("Fehler beim Initialisieren der SD-Karte!");
  return;
  }

  String dateiname = "Messung_" + String(file_counter) + ".txt";

  if (!SD.exists(dateiname)) {
    File datenfile = SD.open(dateiname, FILE_WRITE);
    if (datenfile) {
    // Schreibe Daten in die Datei (Beispiel)
    datenfile.println("Messdaten...");
    datenfile.close();
    Serial.print("Messung wurde geschrieben");
    }
   else {
    Serial.println("Fehler beim Erstellen der Datei! TEST");
    delay(1000);
  }
} else{
    // Wenn die Datei bereits existiert, lese!
    File datenfile = SD.open(dateiname);
    if (datenfile) {
      while (datenfile.available()) {
        Serial.write(datenfile.read());
      }
      datenfile.close();
      Serial.println("TESTDATEI eingelesen!");
    } else {
      Serial.println("Fehler beim Lesen der Testdatei!");
    }
  }
}

Eigentlich steht viel mehr im Code und das Schreiben/Lesen der SD Karte ist in einer Funktion ausgelegt, das alles tut aber nichts zur Sache. Denn Problem macht diese Zeile:

  String dateiname = "Messung_" + String(file_counter) + ".txt";

  if (!SD.exists(dateiname)) {
    File datenfile = SD.open(dateiname, FILE_WRITE);

Wenn ich im

SD.exists(/Messung.txt)){
}

eine Datei "Händisch" abfrage, dann wird diese Datei erstellt und beschrieben, falls sie nicht existiert.

Wenn ich allerdings den String dateinamen abfrage, dann gibt er mir: Fehler beim Erstellen der Datei aus.

Habe es auch schon mit: String dateiname = "/Messung_" + String(file_counter) + ".txt";
keine besserung.

Wieso? Kann mir jemand dabei helfen...?

Danke im Vorraus!

Hi,

Du musst Dich an das Muster 8.3 halten, also AB123456.txt

Gruß André

Hi, kannst du deine Antwort etwas ausführen?

Muster 8.3?

Wie muss ich meine Code verändern?

Beste Grüße

Du kannst vor dem "." (Punkt) nur 8 Stellen, und hinter dem Punkt nur 3 Stellen als Namen haben. Willst Du zum Beispiel das heutige Datum dabe haben: XY150324.txt oder ähnlich.

Gruß André

Danke Andre!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.