Werte dauerhaft speichern

Hallo in die Runde,

ich bin neu hier. Mit Elektronikbasteln beschäftigte ich mich schon seit vielen Jahren, allerdings v.a. im analogen Bereich. Den Zugang zum Programmieren hatte ich bislang nicht so recht gefunden, aber mit dem Arduino ist das jetzt wunderbar einfach. Tolle Sache! Ich habe mich auch sogleich an ein erstes Projekt herangewagt: Eine Füllstandsanzeige für meine Regenwasseranlage. Ich benutze dazu einen Duemilanove und ein LCD-Shield mit 6 Tasten. Das Programm habe ich soweit und es funktioniert auch. Aber jetzt zu meiner Frage: Es gibt zwei Parameter für den Nullpunkt und den max. Füllstand. Die sind abhängig von der Art des Sensors und den Einbaugegebenheiten. Ich kann diese Werte natürlich im Sktech angeben. Die Kür wäre allerdings, die Werte über ein Einstellmenü einzugeben. Sie müssten dabei allerdings dauerhaft gespeichert werden, damit die Anzeige z.B. nach einem Stromausfall noch ordnungsgemäß funktiomiert. Ist das beim Arduino möglich? Vielleicht kann mir ja jemand auf die Sprünge helfen?

Viele Grüße karl_napp

Ja, du kannst die Werte ganz einfach im Eeprom speichern: http://arduino.cc/en/Reference/EEPROM

Danke für die schnelle Antwort. D.h. ich muss die lib in den Sketch einbinden, und die Funktionen wären dann EEPROM.write() und EEPROM.read() ? Und was kommt in die Klammer, der Zahlenwert, den ich speichern möchte?

Die Adresse und den Wert: http://arduino.cc/en/Reference/EEPROMWrite

Bei der Adresse kannst du einfach bei 0 anfangen.

Und bedenke, dass du immer nur ein Byte (0-255) auf einmal speichern kannst. Wenn du größere Werte hast musst du die vorher aufteilen - int in 2 Byte oder float in 4 Byte

karl_napp: Danke für die schnelle Antwort. D.h. ich muss die lib in den Sketch einbinden, und die Funktionen wären dann EEPROM.write() und EEPROM.read() ? Und was kommt in die Klammer, der Zahlenwert, den ich speichern möchte?

Es wird genau das als Parameter zu den Funktionen erwartet, was dokumentiert ist. So what? Den oben geposteten Link und dass man von der Seite aus die Dokumentation der einzelnen Funktionen "read" und "write" aufrufen kann, hast Du gesehen, oder?

Und immer dran denken: Der nichtflüchtige EEPROM Speicher ist nur begrenzt oft beschreibbar. Lesen darf man ihn unbegrenzt, aber beim Schreiben garantiert der Hersteller nur 10000 mal für jede Speicherstelle.

Also nicht auf die Idee kommen, bei jedem Durchlauf der loop-Funktion den Stand irgendeiner Variablen im EEPROM zu speichern. Sondern Speichern immer nur dann, wenn tatsächlich ein neuer Konfigurationswert gespeichert werden soll. Sonst kann der EEPROM-Speicher (oder Teile davon) in kürzester Zeit kaputtgeschrieben werden.

Vielen dank an alle, hat mir sehr weitergeholfen. Und sorry für meine "Blindheit", hatte übersehen, dass die Funktionen erst nach einem weiteren Klick detailiert beschrieben sind.

Viele Grüße karl_napp