dlca:
Das Arduino soll also eine Datei (.txt oder sowas in der Richtung) öffnen und Zahlen z.B. eine pro Zeile einlesen und in eine Variable (z.B. float) eintragen. Gut wäre es, wenn in der Datei auch noch Text stehen dürfte, muss aber nicht sein.
Ich bekomme es hin, dass die Sd-Karte erkannt wird und Dateien und Ordner angezeigt werden. Nur fehlt mir der Ansatz, wie man in einer geöffneten Datei einzelne Zahlen herauspicken kann um diese dann zu verwenden.
Also eine "lesbare Textdatei" mit von Menschenhand in einem per Editorprogramm eingetippten Initialisierungsdaten im Klartext, die ausgelesen werden sollen.
Wenn Du Dir ein Datenformat für so eine Textdatei frei aussuchen darfst, suchst Du Dir am besten eins aus, das sich leicht verarbeiten läßt.
Beispiel:
23.5 Solltemperatur-1
27.2 Alarmtemperatur-1-High
20.2 Alarmtemperatur-1-Low
9.15 Schaltzeit-1-Ein
18.30 Schaltzeit-1-Aus
Zum Einlesen von Gleitkommazahlen denke ich zunächst mal an die Funktion atof ("array to float"):
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga689c9d3c4c04463aa31d329937789d06
Mit dieser Funktion läßt sich eine Gleitkommazahl direkt "ab Zeilenanfang" einlesen, wenn der Text vorher als Zeile in ein char-Array eingelesen wurde. Mal angenommen Du hast die Zeile aus der SD-Karte eingelesen und es steht die Zahl und ein nachfolgender Text drin:
char test[100]="23.5 Solltemperatur-1";
Dann weist Du die Zahl an eine Variable wie folgt zu:
float f=atof (test);
Wenn Du die Variablen abhängig vom Text innerhalb der Zeile an ganz bestimmte Variablen zuweisen möchtest, könntest Du mit der "strstr" Funktion prüfen, ob ein bestimmter Text in einer Zeile steht und dann mittels if-Vergleichen abhängig vom Text in der Zeile den Zahlenwert an ganz bestimmte Variablen zuweisen.
Woran hapert es denn hauptsächlich?
Weißt Du nicht, wie Du aus einer Datei eine Zeile in eine char-Array Variable einliest?
Oder kennst Du Dich nicht mit den AVR libc Library-Funktionen aus, mit denen Dir hunderte fertiger Funktionen zur Verwendung in Deinen Programmen bereitgestellt werden, z.B. die Funktion "atof()" zur Umwandlung einer Gleitkommazahl aus einem char-Array?
Falls es die vielen hundert Funktionen der AVR libc Library sind, die Du nicht kennst, findest Du hier die Library-Referenz:
http://www.nongnu.org/avr-libc/user-manual/modules.html
Fast alle der dort genannten Funktionen der AVR libc kannst Du unter Arduino verwenden, ohne dass eine "#include" Zeile im Programm-Sketch stehen braucht.