Brauche dringend Hilfe bei der Umsetzung einer Speicherfunktion

Hallo,
ich habe jetzt schon tagelang suchmaschine gequält um mein Problem zu lösen bin aber noch zu keinem ergebniss gekommen.

Zu meinem Problem: Ich habe ein Projekt, wo ich mehrere verschiedene Sensoren an einem Arduino Mega angeschlossen habe. diese Sensoren messen auch alle prima und auch das mit der Ausgabe der Zeit von der RTC funktioniert. jedoch habe ich das Problem das ich jetzt nicht nur die daten(wie ich es momentan schon implementiert habe) über den seriellen monitor ausgeben will sondern ich möchte sie in einer CSV. datei speichern. Im prinzip stehen die Daten schon genauso im Seriellen Monitor(die art und weise wie ich das programmiert habe ist leider sehr unsauber da ich keine schleife verwendet habe bzw es damit immer iwie nicht funktioniert hatte aber es funktioniert) wie sie dann in der Datei auch stehen sollen. Ich bin kein kompletter anfänger, ich weiß wie man allgemein daten auf ne sd speichern kann aber z.b. bei dem Bsp-sketch zu SD-Karten mit den drei analogen sensoren, verstehe ich nicht genau wie der string dort erstellt wurde.

Meine Fragen:

  • gibt es eine Möglichkeit, wie ich die daten, die ich an die serielle schnittstelle sende auch parallel genau so auf die SD karte speichern kann?
    -ich habe digitale und analoge sensoren was wäre da eine elegante Variante um aus den Werten einen String zu erstellen, der mit ; getrennt ist?

entschuldigt bitte meine Schreibweise:D ich hab gerade wenig zeit und muss jetzt zum Zug aber es war mir wichtig, dass ich die frage heute noch stellen kann.

danke schonmal im Vorraus für eure Antworten.

Gruß Manu;)

Bereinige doch erst einmal den Code!

In der Arduino SD Lib wird doch eigentlich auf alles eingegangen mit dem Demo-Code. Da bist du nicht gelandet bei dem tagelangen suchen :confused:

if(myFile) {
myFile.print("SensorAb:");
myFile.print(val_SensorAb);
myFile.print(";SensorBc:"); 
/...
myFile.println(); // Ende der Zeile
}

Ein kleiner Hinweis für Dich(nur für den Fall das Du es nicht schon gemacht hast) :

Schreibe Dir eine Funktion "SchreibeWerte" , der Du den Wert übergeben kannst.

Dann kannst Du später noch entscheiden, was Du damit machen willst.
Seriell + SD / Seriell + SD + Netzwerk / Nur SD / nur Netzwerk / usw.

Normalerweise benutzte ich Serial.println() nur in einer Funktion und schreibe es nicht in den normalen Ablauf hinein. Damit bin ich später flexibler.

was wäre da eine elegante Variante um aus den Werten einen String zu erstellen, der mit ; getrennt ist?

Der SD Karte oder seriellen Schnittstelle ist es völlig egal ob das in einem String steht oder nicht. Das kostet nur Speicher und Zeit.

Am einfachsten ist man macht da einfach mehrere print()/println() Aufrufe hintereinander wie sschultewolter es gezeigt hat.

Die Syntax ist da nicht schön, aber dafür gibt es das:
http://arduiniana.org/libraries/streaming/
Damit hat man die Output Stream Syntax aus C++. Das ist aber lediglich Kosmetik, damit es lesbarer ist. Der Code dahinter ist genau der gleiche.