CSV - Datei Zeilen wechseln

Hallo liebes Forum !

Ich hätte ein Problem und zwar möchte ich mithilfe eines SD - Card Shields mithilfe meines Arduino Mega eine LogDatei erstellen, welche mir die Uhrzeit und die Temperatur mitloggt. Die Bauteile habe ich schon dazu, nur möchte ich nun mal als erstes das Excel Dokument erstellen, wie es später aussehen sollte.

Und hierbei ist das Problem, ich bekomme es nicht hin, dass gewisse Texte in einer anderen Zeile neben einen anderen Text stehen. Diese werden bei mir in eine Zeile hineingepresst und so sollte es nicht sein.

Hier ist mein Code, wie gesagt es geht mir derzeitig nur um das Aussehen des Excel Dokumentes:

#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  
  Serial.begin(9600);
  while (!Serial) {
     }
  Serial.print("Initializing SD card...");

  if (!SD.begin(53)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  myFile = SD.open("log.csv", FILE_WRITE);

  if (myFile) {
    Serial.print("Writing to log.csv...");
    myFile.println("Temperaturmessung:");
    myFile.println();
    myFile.print("Datum:");
    myFile.print("\t");
    myFile.println("19.07.2016");
    myFile.println();
    myFile.print("Uhrzeit:");
    myFile.print("\t");
    myFile.print("\t");
    myFile.print("Temperatur:");    
    myFile.close();
    Serial.println("done.");
  } else {
        Serial.println("error opening log.csv");
  }
}

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

Ich habe geglaubt, dass man mit dem Befehl myFile.print("\t"); die Zeile wechselt, dem ist aber nicht so. Des weiteren habe ich euch zwei Excel Dokumente angehängt, wo er einmal, dass derzeitige Ergebnis sieht (Bei "Falsch") und einmal wie es sein sollte (Bei "Richtig").

Hier könnt ihr euch die Excel Dokumente ansehen:

Was muss man im Code ändern damit, dass Excel Dokument so erstellt wird wie ich es mir vorstelle ?

LG

Den Unterschied zwischen print und println kennst du ?

'\t' ist hübsch und auch gut für Excel als Spaltentrenner, das nennt man nur streng genommen nicht csv

Hallo,
so beschreibst Du die Text-Log-Datei mit dem Arduino:

 if (SdLogZl == 1)
{ SdDatLog = SD.open("DatLog.txt", FILE_WRITE);
   if (SdDatLog)
{
    SdDatLog.print(Datum);
    SdDatLog.print(" ");
    SdDatLog.print(Zeit);
    SdDatLog.print(" ");
    SdDatLog.print(INcT,1);
    SdDatLog.print(" ");
    SdDatLog.print(INrF,1);
    SdDatLog.print(" ");
    SdDatLog.print(TpIN,1);
    SdDatLog.print(" ");
    SdDatLog.print(EXcT,1);
    SdDatLog.print(" ");
    SdDatLog.print(EXrF,1);
    SdDatLog.print(" ");
    SdDatLog.println(TpEX,1);
   GRSdDatLog = SdDatLog.size();
  GRSdDatLog/=1024; 
    SdDatLog.close();
}
}

das steht /so sieht es aus, in der Text-Log-Datei:

04.07.14 00:00 14.1 86.9 1010.1 11.9
04.07.14 00:05 14.0 87.5 1010.1 11.9
04.07.14 00:10 13.9 87.8 1010.1 11.9
04.07.14 00:15 13.8 88.4 1010.0 11.9
04.07.14 00:20 13.7 88.5 1010.0 11.8
04.07.14 00:25 13.6 88.8 1010.1 11.8
04.07.14 00:30 13.5 88.9 1010.0 11.7
04.07.14 00:35 13.4 89.6 1010.1 11.7
04.07.14 00:40 13.3 89.9 1010.2 11.7
04.07.14 00:45 13.3 90.1 1010.2 11.7
04.07.14 00:50 13.2 90.6 1010.1 11.7
04.07.14 00:55 13.2 90.6 1010.0 11.7
04.07.14 01:00 13.3 90.8 1010.0 11.8
04.07.14 01:05 13.2 91.0 1009.9 11.7
04.07.14 01:10 13.1 90.9 1009.9 11.7
04.07.14 01:15 13.0 90.6 1010.0 11.5
04.07.14 01:20 12.9 90.9 1009.8 11.5
04.07.14 01:25 12.9 91.2 1009.8 11.5

Wenn Du es mit Excel öffnest, dann hast Du je Zeile eine Datensatz mit einem
Feld. Müll!

Du öffnest Excel
Datei/Importieren
Datentyp Textdatei
Datei auswählen
Textdateien
Importieren
Textimport-Assiesten Schrit 1
Datentyp getrennt
Textimport-Assiesten Schrit 2
Trennzeichen
Leerteichen
Textqualifizierer
kein
Textimport-Assiesten Schrit 3
Datenformat der Spalten
Standart
Erweitert
Dezimaltrennzeichen
"." einstellen
Fertigstellen
Daten Importieren
Vorhandenes Blatt
OK

Fertig, so sieht es in Excel aus, siehe Bild
Das ist ein Arduino-Forum- nichts Excel.
Gruß und Spaß
Andreas

Excel-Log.jpg

Danke für eure Antworten, aber ich möchte es direkt als .csv Datei haben und nicht zuerst als Text Datei. =)

" '\t' ist hübsch und auch gut für Excel als Spaltentrenner, das nennt man nur streng genommen nicht csv " -> Das verstehe ich nicht ganz, weil ,mit "\t" macht man ja eine Tabulatorschaltung oder ?

Wie SkobyMobil es beschrieben hat habe ich es auch probiert und trotzdem landet alles in einer Spalte und wird nicht aufgeteilt. =/

Ich habe auch von einem Youtube Video etwas probiert, wo es im Video perfekt funktioniert nur bei mir wird wieder mal alles in die selbe Spalte geschrieben und nicht auf Spalte A und Spalte B.

Hier das Video:

LG

Hallo,
youtube Video- Du siehst eine Kochsendung in der ein Steak zubereitet wird-
und kannst dann Steak´s braten? Nicht schlecht!

Das wird helfen.

Der- erzeugt ein Komma getrenntes CSV-File und schließt den Datensatz mit
println ab.
Das kannst Dir einfach in Excel reinholen, siehe Link.
Gruß und Spaß
Andreas

'\t' ist ein Tabulatorzeichen,
eine csv Datei ( comma separated values ) unterteilt die Spalten durch ',' oder ';' je nach Länder-Einstellung. (Gibt noch mehr Feinheiten, wie man z.B. ein ';' als Inhalt in eine Spalte bekommt, die aber erstmal nicht interessieren.)

Text-Dateien sind sie alle, auch skobis mit Leerzeichen unterteilter Vorschlag.
Wie du sie richtig in Excel öffnest, hängt dann davon ab.
Auch wie du ein "deutsches Excel" dazu kriegst, einen Arduino - Dezimalpunkt als Dezimal-Komma zu interpretieren, ist tricky ...