Analog read werte abgleichen

Hallo.

Ich habe vor einer Weile angefangen ein Messgerät zu programmieren. Es geht um 3 analog werte die in einem Display angezeigt werden. Die Sensoren liefern mir 0-10v. Ein umsetzen auf 0-5v ist kein Problem.

Jetzt möchte ich die Sensoren recht genau im 0 und im oberen wert abgleichen. Die Anzeige soll in % erfolgen. Die reine messfunktion habe ich auch zum laufen bekommen.

Die Steuerung möchte ich über einen Rotary encoder realisieren. Eine menü Struktur habe ich auch gefunden.
Jetzt stellt sich mir die Frage an der ich schon länger hänge, wie bekomme ich es hin einen wert im Programm mittels Rotary encoder zu ändern.
Ich möchte z.B. bei einem gelesenen wert von 0,21% den 0 wert einstellen. Oder wenn ich im oberen Bereich 4,3% angezeigt bekomme, 4% einstellen.
Ich hoffe ihr könnt mir folgen

Danke schon mal im vorraus

Jetzt möchte ich die Sensoren recht genau im 0 und im oberen wert abgleichen.

Hmmm....

Mir scheint, du suchst eine "Zwei Punkt Kalibrierung"
Offset und Steigung.

Vielen Dank schonmal für die antworten. Das mit offset einer rechenfunktion hört sich schon mal gut an.
Falls ich mich jetzt nicht ganz blöd anstelle, müsste ich dann in einem Menüpunkt auswählen ob ich + oder - rechnen möchte und dann den wert einstellen. Richtig?
Ich müsste das jetzt nochmal rauskramen und nachschauen, aber ich bin der Meinung das ich den analog wert mit einer float Funktion umrechne weil ich 2 nachkommt Stellen benötige.

Hi

Dir wird (recht schnell) auffallen, daß Deine eingestellten Werte jedes Mal flöten gehen, wenn der Arduino den Strom verliert.
Du kannst Dir die Korrektur-Werte (zu Offset und Steigung) im EEprom speichern.
Beim Programmstart schaust Du im EEprom nach, wie die Korrektur-Werte sind und benutzt Diese im Programm.
Allerdings kannst Du diese Korrekturen - korrigieren :wink:
Diese geänderten Werte musst Du natürlich auch irgendwann wieder ins EEprom schreiben - da Dieses nur 10000 (oder 100000) Schreibvorgänge pro Zelle zulässt (das Ding geht dann an dieser Stelle kaputt), solltest Du nicht bei jedem loop()-Durchlauf im EEprom rumkritzeln.

Du wirst also eine Gleichung y=ax+b (von mir aus auch mit m und n) haben.
Dort musst Du für A und für B 'Startwerte' im Programm anlegen (sonst wäre der erste Start wohl 0/0 und y bei jedem Messwert ebenfalls Null).
Diese kannst Du const deklarieren (werden ja beim Programmieren mit gegeben und ändern sich nie) - darauf addierst Du Deine Korrekturen - um welchen Wertebereich es sich Da dreht - kA, wirst Du herausfinden dürfen :wink:

Soweit meine Gedanken zu Deinem Problem,

MfG

Nexxum:
Falls ich mich jetzt nicht ganz blöd anstelle, müsste ich dann in einem Menüpunkt auswählen ob ich + oder - rechnen möchte und dann den wert einstellen. Richtig?

Wieso nicht linksrum - und rechtsrum +?

Gruß Tommy