writeToFile(char, nicht float)

So langsam fühle ich mich schlecht, wenn ich hier wegen jedem neuen Problemchen einen neuen Thread aufmachen muss. Aber ich habe wirklich gegooglelt. Und jedes Mal wenn ich das mache, habe ich danach noch viel mehr Fragen als vorher :confused:

Ich bin dabei eine .txt auf die SD Karte zu schreiben. Funktioniert soweit. Allerdings wollte ich neben Text
writeToFile("Blablabla");
auch einen Messwert ausgeben
writeToFile(temp)

Problem hier: temp ist als float definiert, darf ich nicht. Muss wohl char oder etwas verträgliches sein.

int temp2 = round(temp) hat auch nicht funktioniert.

Wer hat ne Idee? :slight_smile:

writeToFile()

Kenne ich nicht!

Normalerweise implementiert file doch Print.

Und Print kann sowohl Zeichenketten als auch float ausgeben.

Hanswurst123:
.....
Wer hat ne Idee? :slight_smile:

Grundlagen lernen, dann geht es auch mit Google.

Ist ja nicht so, als würde ich hierbei nicht ständig neuen Input bekommen. Aber da gibt es leider eine Deadline im Projekt, die ich nicht reißen möchte.
Könnte also vllt entweder jemand noch etwas zu den Befehlen File und Print sagen.
Oder hilft mir jemand mit der Umwandlung von float zu char.

Bei den Arduino Referenz Befehlen wurde ich nicht fündig.
Bei Google und YT kam ich auf Umwandlungsmöglichkeite, die allerdings für irgendeine Programmiersprache anzuwenden sind.

Es ist korrekt, dass der Arduino Code auf C++ funktioniert und die C++ Befehle hier auch gelten sollten?

Könnte also vllt entweder jemand noch etwas zu den Befehlen File und Print sagen.

Das sind keine Befehle, sondern Klassen.
Und wie Print funktioniert, solltest du mit Serial, File, LCD und auch Wire schon erlebt haben.

Alle diese implementieren Print um z.B. Zeichenketten und float auszugeben.

Es ist korrekt, dass der Arduino Code auf C++ funktioniert und die C++ Befehle hier auch gelten sollten?

Anwendung und Libraries sind meist in C++ geschrieben.
Der Core im Großteil in C.

Also: Es geht C++, C und Assembler.

Hanswurst123:
......
Bei den Arduino Referenz Befehlen wurde ich nicht fündig.

Was heißt das genau ?
Sollen wir dir das vorlesen ?
Zu jedem deiner aufgeführten Anweisungen habe ich in der Referenz etwas gefunden.
Außer zu "file", da das nicht unmittelbar zum Arduino gehört.

Somit solltest du nur richtig suchen.

@combie:
Serial kenne ich von Serial.print("");
Nutze ich für den Seriellen Monitor. Was das nun mit dem Schreiben einer .txt auf der SD zu tun hat, kann ich nur mutmaßen.
Ein File ist für mich eine Datei, ein LCD ein Display und Wire ein Kabel. Leider habe ich keine Ahnung, was du mir mit diesen Begriffen sagen möchtst :frowning:

@Hotsystems:
Klar finde ich in der Referenz eine Erklärung was char und float sind, wusste ich auch vorher. Aber wie ich sie ineinander umwandeln kann, weiß ich deswegen nicht. Und weder zu print noch zu file finde ich dort einen Eintrag.
Insofern keine Bitte ums Vorlesen, aber vllt ein Hinweis darauf, was zu lesen ist und wie ich den Inhalt verstehe.

File, Serial und die meisten LCD erben von Stream/Print, haben also gemeinsame Methoden.
Auf alle Fälle alle print- und write-Varianten.

Gruß Tommy

Wenn du immer nur in "Befehlen" denkst bekommst du schnell Probleme. Programmiersprachen haben nun mal ihre eigene Terminologie. Es gibt Anweisungen, Funktionen, Methoden, Operatoren, etc. Aber keine Befehle. Für diese unterschiedlichen Bestandteile gelten genau definierte Regeln. Außerdem kann man auch mit Google besser suchen wenn man weiß wie es richtig heißt.

Die ganze Ausgabe- und Formatierungs-Logik steckt beim Arduino in einer Klasse: Print. Darin gibt es verschiedene Print Methoden die mit unterschiedlichen Datentypen wie String, int und float umgehen können. Andere Klassen können darauf zugreifen und müssen nicht die komplette Ausgabe neu implementieren.
Daher macht es bei print() keinen Unterschied ob die eine SD Karte, serielle Schnittstelle oder ein LCD hast

Hallo,

warum schaust Du dir nicht mal ein paar Beispiele aus der IDE an. Oder aus der Hilfe.

link noch einfacher geht´s doch nun wirklich nicht.

Heinz

Hanswurst123:
Klar finde ich in der Referenz eine Erklärung was char und float sind, wusste ich auch vorher. Aber wie ich sie ineinander umwandeln kann, weiß ich deswegen nicht. Und weder zu print noch zu file finde ich dort einen Eintrag.
Insofern keine Bitte ums Vorlesen, aber vllt ein Hinweis darauf, was zu lesen ist und wie ich den Inhalt verstehe.

Das reicht dann wohl nicht, wenn nicht richtig gesucht wird.

Hier der Eintrag für print.
Was file betrifft hatte ich schon geschrieben.
Und weiteres findest du auch noch hier.

Danke für jeden Input. Ich konnte das Problem mit "dtostrf()" lösen =)

dtostrof() braucht man wenn eine Klasse nicht von Print erbt. Oder wenn man eine Gleitkommazahl auf eine konstante Breite formatieren muss. Ansonsten geht es einfach mit print()