Mathematische berechnung von Prozent...

Hallo zusammen. Stehe grade total auf dem schlauch… ich will einen Istwert in Prozent darstellen…

Wahrscheinlich war das Mathe 5 Klasse :smiley:

gegeben sind 3 werte:

IstMax: 29000 <—0%
IstMin: 46000 <—100%

IstJetzt: je nach zustand zwischen 29000-46000

IstJetzt ist der Aktuelle Sensorwert(proportional). Dieser liefert werte zwischen 29000 bei erreichen von leer und 46000 bei erreichen von voll…

wie verrechne ich jetzt die werte um einen Prozentualen wert von IstJetzt zu erhalten?

die werte von IstMax und IstMin werden in einem Kalibriervorgang bestimmt

Normalerweise tut man sich leichter wenn max > min ist, aber deine Frage kann mit map beantwortet werden.

mpl1337:
Hallo zusammen. Stehe grade total auf dem schlauch… ich will einen Istwert in Prozent darstellen…

Wahrscheinlich war das Mathe 5 Klasse :smiley:

gegeben sind 3 werte:

IstMax: 29000 <—0%
IstMin: 46000 <—100%

Wie wäre es mit etwas in der Art:

Prozent = map(IstJetzt, IIstMax ,IstMin, 0, 100);

jurs:
Wie wäre es mit etwas in der Art:

Prozent = map(IstJetzt, IIstMax ,IstMin, 0, 100);

Perfekt Danke mit

Prozent = map(IstJetzt, IIstMin ,IstMax, 0, 100);

klappt es

hi,

Normalerweise tut man sich leichter wenn max > min ist, aber deine Frage kann mit map beantwortet werden.

war ein bißchen seltsam beschrieben. max ist zwar kleiner als min, aber dafür sind min 100% und max 0%.

kurz: (IstJetzt - 29000) / 170

gruß stefan

Prozent = map(IstJetzt, IIstMin ,IstMax, 100, 0);

Müsste doch dann auch gehen.

Wenn min und max sich ändern können, kann man doch nicht einfach 29000 abziehen. Allenfalls die Differenz der beiden.

hi,

warum sollten sich min und max ändern?

gruß stefan

Eisebaer:
warum sollten sich min und max ändern?

mpl1337:
die werte von IstMax und IstMin werden in einem Kalibriervorgang bestimmt

Ob der Kalibriervorgang offline, in setup oder loop stattfindet, ist nicht überliefert.

hi,

ich bin von einmaligem kalibieren bei einem tank oder ähnlichem ausgegangen. aber kann natürlich auch eine bierabfüllanlage sein, da macht man's dann wahrscheinlich öfter...

gruß stefan

Es handelt sich um einen Wassertank welcher in Abständen von 2-8 Wochen neu befüllt werden muss. Gemessen wird kapazitiv…

IstMax: 29000 <—0%
IstMin: 46000 <—100%

Voller Tank = Hohe Kapazität
Leerer Tank = kleinere Kapazität

Bei jedem neu befüllen muss die Kapazität neu erlesen werden…

Sprich Sondenrohr komplett eintauchen und die Kapazität Welche bei vollem Tank gemessen wurde als 100% speichern. Dann Sonde komplett raus um Wert 0% neu zu bestimmen und wieder abspeichern.

Die Kapazitäten ändern sich ständig je nach Qualität des Wassers und Verschmutzung des Tanks… Die Abweichung innerhalb der 2-8 Wochen ist akzeptabel zusätzlich ist am absoluten minimal Stand nen Schwimmerschalter um die Pumpe nicht trocken laufen zu lassen falls mal die kapazitive Messung zu weit ausdriftet

Dann musst Du zwischen Kalibrierung und Betrieb umschalten können.
Die kalibrierungswerte kannst Du ins EEPROM schreiben. Bei Änderung aller 2-8 Wochen reicht die garantierte Schreibrate aus, um Dich zu überleben.

Gruß Tommy

Es gibt für die Kalibrierung ein Menü mit 2 Buttons welches beide werte im eeprom hinterlegt :slight_smile:

prima.

Gruß Tommy