Go Down

Topic: Mehrere double werte nebeneinander anzeigen (Read 272 times) previous topic - next topic

edstaib

Hallo zusammen

Ich habe das Problem, dass ich mehrere Double Werte auf eine SDkarte speichern möchte. Jedoch kann ich diese nicht einzeln in ein FEld der csv datei schreiben sondern sie werden mir immer aufsummiert.
Kann mir da jemand helfen?

long tempinbitIR00 = 0;
double tempIR00 = 0;
long tempinbitIR01 = 0;
double tempIR01 = 0;
long tempinbitIR02 = 0;
double tempIR02 = 0;
long tempinbitIR3 = 0;
double tempIR3 = 0;

if (dataFile) {
      Serial.println("TEst01");
      dataFile.print(tempIR00 + tempIR01 + tempIR02 + tempIR3 + timenow);
      Serial.print(tempIR00 + tempIR01 + tempIR02 + tempIR3 + timenow); // print to the serial port too


Ergebniss:
tempIR00: -20.50
tempIR01: -20.12
tempIR02: -20.80
tempIR3: -21.20
TEst01
-82.62;2000/1/1 0:0:18


Wie müsste ich die einzelnen Werte angeben, damit sie nebeneinander angezeigt werden?

agmue

#1
Apr 17, 2019, 12:03 pm Last Edit: Apr 17, 2019, 12:08 pm by agmue
Versuche mal:

Code: [Select]
Serial.print(tempIR00);
Serial.print(';');
Serial.print(tempIR01);
Serial.print(';');
Serial.print(tempIR02);
Serial.print(';');
Serial.print(tempIR3);
Serial.print(';');
Serial.print(timenow);


Möglicherweise könnte Dir Streaming.h gefallen:

Code: [Select]
#include <Streaming.h>
...
Serial << tempIR00 << ";" << tempIR01 << ";" << tempIR02 << ";" << tempIR3 << ";" << endl;


Beispiele findest Du in der Bibliothek SdFat.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

michael_x

+ wird nun mal zur Addition verwendet. 
Und das ist auch gut so. ;)

postmaster-ino

Hi

Gibt auch Sprachen, in Denen mit + Strings verknüpft werden - könnte bei PHP so gewesen sein (müsste nachschauen).

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

combie

#4
Apr 20, 2019, 08:25 pm Last Edit: Apr 20, 2019, 08:54 pm by combie
Hi

Gibt auch Sprachen, in Denen mit + Strings verknüpft werden - könnte bei PHP so gewesen sein (müsste nachschauen).

MfG
Arduino kann das auch
Code: [Select]

     Serial.print(String() + tempIR00 + tempIR01 + tempIR02 + tempIR3 + timenow); // print to the serial port too





Code: [Select]
void setup()
{
 Serial.begin(9600);
 String a(2.55);
 float  pi = 3.14;
 Serial.println(a + " " + pi + " " + 42 + " " + 4711 + " " + 1.1 + F(" Rosinensalat"));

}

Aber was geht, muss nicht unbedingt gut sein
Der Pessimist sieht die Wolke vor der Sonne.
Der Optimist sieht die Sonne hinter der Wolke.

Mantra: Die Sonne scheint immer!

wapjoe

Hi

Gibt auch Sprachen, in Denen mit + Strings verknüpft werden - könnte bei PHP so gewesen sein (müsste nachschauen).

MfG
Von AutoIT und VBA, wahrscheinlich auch VB, kenne ich die Möglichkeit mit dem &-Zeichen, so was in der Art vermisse ich in C++/Arduino. Aber warum einfach wenn es auch umständlich geht, bzw. man gewöhnt sich irgendwann daran. ;)
Mein Balkon ist endlich Bienär gestaltet, für die Wildbienen! ;)

postmaster-ino

Hi

Da auf dem AVR zumindest Strings (großes S) keine so gute Idee sind, stört das fehlende 'Zusammenkleben per +' nur bedingt.
Gerade bei dieser Kleberei wird einem sehr schnell der Speicher ausgehen, da ja beide vorhandenen Strings zusammengesetzt irgendwo Platz finden müssen - wobei der Kompiler schon gezeigt hat, daß Er weiß, was Er tut ... wenn man's aber nicht benutzt, fällt man damit aber auch nicht auf die Fresse.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Tommy56

Von AutoIT und VBA, wahrscheinlich auch VB, kenne ich die Möglichkeit mit dem &-Zeichen, so was in der Art vermisse ich in C++/Arduino.
Das wäre doch mal die Idee: Du könntest VB auf den Arduino portieren ;)

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

wapjoe

Das wäre doch mal die Idee: Du könntest VB auf den Arduino portieren ;)

Gruß Tommy
lol
Das willst du und ich nicht wirklich... :D
Mein Balkon ist endlich Bienär gestaltet, für die Wildbienen! ;)

dsyleixa

#9
Apr 22, 2019, 09:28 am Last Edit: Apr 22, 2019, 04:57 pm by dsyleixa
Von AutoIT und VBA, wahrscheinlich auch VB, kenne ich die Möglichkeit mit dem &-Zeichen, so was in der Art vermisse ich in C++/Arduino. Aber warum einfach wenn es auch umständlich geht, bzw. man gewöhnt sich irgendwann daran. ;)
Basic/VB ist eine andere Sprache mit anderen Operatoren und anderer Syntax.
Arduino verwendet, wie richtig bemerkt, C++.
In C++ gibt es neben den ANSI-C-ctrings (nullterminierte char-arrays, die man mit strcat() aneinanderhängen kann) noch die std::string class (kleines s), in der man strings ebenfalls mit + verknüpfen kann.
Arduino hat diese std::strings nicht, weil sie extrem viel Speicher brauchen.
Stattdessen hat Arduino die String Class (großes S), die ziemlich ähnlich wie ein abgespecktes std::string funktioniert inkl. ebenfalls "+" fürs zusammenfügen, aber immer noch sehr viel Speicher braucht, oft zuviel für die kleinen AVRs.
Außerdem haben die AVRs (u.a. auch aus Speichergründen) gar kein echtes 64bit-"double" - "double" auf den AVRs ist schlicht dasselbe wie das ganz normale 32bit-float.
Weil man ständig mit diesen Mini-AVRs mit ihrem mickrigen 2-3kB Speicher solche RAM-Probleme hat, verwende ich (wie auch viele andere User) von vornherein den Mega2560 oder einen ARM (Zero/M0, Due/M3 oder M4 von Adafruit/Teensy) - dann kann man auch getrost String verwenden -  u.v.m.
Ein M0 oder M4 ist oft nicht größer als ein Nano (s. Adafruit Itsybitsy M0/M4 oder Feather M0/M4), es gibt die aber auch mit Uno/R3 oder Mega2560/R3-Platinenlayout (z.B. Adafruit Metro M4 oder Adafruit Great Central M4).

PS
eine weitere, wirklich mächtige und auch sehr praktische (wenn auch für Anfänger oft zu komplizierte) Funktion, um cstrings aneinanderzuhängen und perfekt (auch tabellarisch) zu formatieren, ist sprintf().
Bislang konnte man mit sprintf auf AVRs leider keine fp  (float oder double) formatieren (sondern nur auf ARMs, ebenfalls aus Speichergründen), inzwischen gibt es aber einen Patch, mt dem sich fp per sprintf auch auf AVRs zu einem cstring verarbeiten lassen (aber auch natürlich Zusatzspeicher braucht, wenn auch nicht so viel wie die String class).

Go Up