Go Down

Topic: Frage zu println (Read 609 times) previous topic - next topic

MiXXer

Hallo,
ich möchte gerne Daten von 3 Analogen Sensoren auf der SD Karte speichern.
Es klappt auch soweit, allerdings hätte ich gerne die Daten wie folgt in der Datei aufgelistet:
Strom = 0,5A, Spannung = 4V, Temp = 2°C

Für die nächsten Messwerte soll eine neue Zeile angefangen werden.
Zum Speichern auf der SD Karte benutze ich fogenden Befehl:
myFile.println(Sensor1);

Wie schaffe ich es, das die sensor Werte durch Komma getrennt dargestellt werden, und nach einem neuen Durchgang in einer neuen Zeile gespeichert werden??

Danke

Magnus

Joghurt

#1
Jul 21, 2011, 01:01 pm Last Edit: Jul 21, 2011, 01:03 pm by Joghurt Reason: 1
Also wenn Du nicht auf das Komma bei den Fließkommazahlen bestehst müsste das eine Option sein:
Code: [Select]

myFile.print("Strom = ");
myFile.print(Sensor1);
myFile.print("A, Spannung = ");
myFile.print(Sensor2);
myFile.print("V, Temp = ");
myFile.print(Sensor3);
myFile.println("°C");

MiXXer

Danke schon mal.
Er speichert jetzt folgendes.
Die Werte sind auch schon in Ordnung. Auf Spannung, Amper etc. hab ich verzichtet:
Allerdings speichert er alle 10-20 Durchgänge Irgendwelchen Müll. Diesen "Müll" zeigt er aber auf den seriellen Monitor nicht an.
Ideen?

Hier der Müll:
0D. 7 1 , 24 . 6 6

n2>9 9 . 8E1T, 0 .X7 1 ,2(4(    (      a p e   x                      t . t x t  ;   ÿ ÿ ÿ ÿ ÿ   ÿ ÿ R e a d _  ;                   E D F 1 X   £ p > >   p >
>                                                                                           .54

So sollte es aussehen:
299.81,0.71,24.48
300.52,0.71,24.42
300.52,0.71,24.42
299.81,0.71,24.36
300.52,0.71,24.30
300.52,0.71,24.30
300.52,0.71,24.24
300.52,0.71,24.24
301.23,0.71,24.24
300.52,0.71,24.24


TelosNox

Vielleicht Speicher voll?

Ich hatte teilweise so komische Sachen auf meinem LCD-Display, weil der Speicher voll war und übergelaufen ist. Nach Speicheroptimierung war der "Müll" dann weg.

Joghurt

Wie beendest Du Deine Messung?

Für mich sieht das so aus als würdest Du den Arduino hart abbrechen, während er noch am Schreiben ist.

Ich würde einen "Messung beenden"-Knopf einbauen, der auslöst dass der Arduino mit schreiben aufhört, ggf. seine Pipes flusht, die Datei schließt und dann meldet dass er fertig ist. Mit einer LED oder so.

Probier mal ob dann immer noch Müll kommt...

MiXXer

Speicher ist nicht voll.
Wenn ich in setup(){} sage er soll Ampere, Spannung, Strom schreiben, so wird dies nicht einmal gemacht, sondern in unregelmäßigen Abständen immer wieder geschrieben. Ähnlich Abstände wie der Müll.

MiXXer

@Joghurt: Gute Idee, werd ich mal ausprobieren.

Go Up