Fehler beim Öffnen der Datei

OP #7695375
Lesenswert?

Hallo zusammen,

für ein Projekt an unserer Schule habe ich einen Arduino Nano mit unterschiedlichen Sensoren verbunden und will diese gewonnenen Daten auf einer SD-Karte speichern. Die Sensoren habe ich einzeln überprüft und diese haben reagiert. Leider komme ich beim Speichern der Ergebnisse nicht weiter und hoffe ihr könnt mir helfen. Compiling hat funktioniert, Initialisierung der SD-Karte auch erfolgreich, aber dann wird der Fehler: "Fehler beim Öffnen der Datei" geworfen. Die SD Karte ist nur 1GB groß und wurde mit SD Format frisch formatiert.

Hier der Code:

1
#include <SPI.h>
2
#include <SD.h>
3
#include <Adafruit_BMP085.h>
4

5
File meineDatei;
6
Adafruit_BMP085 bmp;
7

8
void setup() {
9
  // SD-Karte initialisieren
10
  Serial.begin(9600);
11
  while (!Serial) {
12
    ; // warten auf serielle Portverbindung.
13
  }
14

15
  if (!bmp.begin()) {
16
  Serial.println("Could not find a valid BMP085 sensor, check wiring!");
17
  while (1) {}
18
  }
19

20
  if (!SD.begin(10)) {
21
    Serial.println("Initialisierung fehlgeschlagen!");
22
    return;
23
  }
24
  Serial.println("Initialisierung erfolgreich.");
25

26
  // Öffnen der Datei. Beachten Sie, dass nur ein Programm zur Zeit auf die Datei schreiben kann.
27
  meineDatei = SD.open("ergebnisse.txt", FILE_WRITE);
28

29
  // Schreiben Sie die Ergebnisse der Programme in die Datei
30
  if (meineDatei) {
31
    meineDatei.println("Ergebnisse von Programm 1:");
32
    meineDatei.println(programm1());
33
    meineDatei.println("Ergebnisse von Programm 2:");
34
    meineDatei.println(programm2());
35
    meineDatei.println("Ergebnisse von Programm 3:");
36
    meineDatei.println(programm3());
37
    meineDatei.println("Ergebnisse von Programm 4:");
38
    meineDatei.println(programm4());
39

40
    // Schließen der Datei
41
    meineDatei.close();
42
  } else {
43
    // wenn das Öffnen der Datei fehlschlägt:
44
    Serial.println("Fehler beim Öffnen der Datei");
45
  }
46
}
47

48
void loop() {
49
  // Nichts zu tun hier
50
}
51

52
String programm1() {
53
  int TMP36 = A1;
54
  int sensorwert;
55
  int temperatur = 0;
56
  int t = 500;
57

58
  sensorwert = analogRead(TMP36);
59
  temperatur = map(sensorwert, 0, 410, -50, 150);
60
  delay(t);
61
  return String(temperatur) + " Grad Celsius";
62
}
63

64
String programm2() {
65
  int xA = analogRead(A3);
66
  int yA = analogRead(A2);
67
  int zA = analogRead(A6);
68

69
  return String(xA) + "," + String(yA) + "," + String(zA);
70
}
71

72
String programm3() {
73
  const byte soundpin = A0;
74
  int sample = analogRead(soundpin);
75
  float volt_calc = sample * (5.0 / 4096.0);
76

77
  return String(sample) + "\t" + String(volt_calc);
78
}
79

80
String programm4() {
81
  
82
  float temp = bmp.readTemperature(); // °C
83
    
84
  float press = bmp.readPressure(); // Pa
85
    
86
  float alt = bmp.readAltitude(); // meters
87

88
  return String(temp) + "\t" + String(press) + "\t" + String(alt) ;
89
}

Vielen Dank schon Mal für eure Ideen!

Gruß, Roman

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren