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!