Hallo. Ich habe ein Problem mit dem Code des SD-Karten Moduls. Mein Ziel: Auf die SD Karte soll nur am Anfang ein einziges mal zB. "SD karte bereit" geschrieben werden. Danach sollen in der loop() Funktion jede Sek. sensor Daten gespeichert werden. Mein Problem: ... void setup(){ if (SD.begin()) { myFile = SD.open("Projekt.txt", FILE_WRITE); myFile.println("SD Karte ist funktionsbereit"); } else{ myFile.println("Fehler beim einlesen der SD Karte!"); return; }} void loop() { myFile = SD.open("test.txt", FILE_WRITE); if (myFile) { myFile.println(val); myFile.close(); // close the file } else { Serial.println("Dokument kann nicht geöffnet werden! "); } delay(1000); } Bei dem Code habe ich in loop und setup SD.open() verwendet weil ich meine, das in setup für das einmalige speichern von "SD Karte ist funktionsbereit" schon SD.open() notwendig ist, aber in loop ebenfalls weil bei der Schleife jedesmal wieder SD.open() gebraucht wird ansonsten bleibt das txt-Dokument durch das letzte myFile.close() doch geschlossen und kann keine Sensor-Daten aufnehmen ?! Dieser Code funktioniert wie schon gedacht nicht. Hat jemand einen schlauen Tipp oder Lösung parat? MfG Heike
heike schrieb: > Dieser Code funktioniert wie schon gedacht nicht. Was genau funktioniert nicht? Mit der Fehlerbeschreibung kan niemand was anfangen. Im setup() fehlt übrigens das myFile.close(), d.h. das File wird nicht geschlossen und u.U. nix auf die SD Karte geschrieben. IMO müsste das eine Projekt.txt mit 0 Bytes ergeben, die nach einem Scandisk Lauf eine Länge von einem Cluster bekommt. Kenne mich aber mit den Arduino Libs nicht sonderlich gut aus. Der else Zweig im setup() ist auch alles Andere als funktional.
Ja vielen Dank. Das Problem war das ich nicht in setup() myFile.close() geschrieben habe. FG. Heike
heike schrieb: > void setup(){ > if (SD.begin()) > { myFile = SD.open("Projekt.txt", FILE_WRITE); > myFile.println("SD Karte ist funktionsbereit"); > } else{ > myFile.println("Fehler beim einlesen der SD Karte!"); > return; > }} Wie genau soll denn die Fehlermeldung in die Datei geschrieben werden, wenn die Datei nicht geöffnet werden konnte?! Außerdem ist es natürlich enorm ineffizient, die Datei ständig aufs neue zu öffnen und zu schließen... Die Karte lebt so vermutlich auch kürzer, wenn ständig der Verzeichniseintrag neu geschrieben wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.