Also jetzt eine Quick & Dirty Programm Lösung die mir einfallen würde wäre zusätzlich ein Boolean einzubauen.
z.B.
PHP-Code:
boolean active = false;
float min_bar = 0.0; // Damit das Display am Anfang 0 anzeigt
float max_bar = 0.0;
float pressure_barLast = 1.0;
PHP-Code:
if (max_bar <= pressure_bar){ // Maximaldruckberechnung
max_bar = pressure_bar;
}
PHP-Code:
if (min_bar >= pressure_bar && active){ // Minimaldruckberechnung
min_bar = pressure_bar;
}
PHP-Code:
if (pressure_barLast < pressure_bar && !active){ // Aktivieren der Minimalberechnung
delay (10000); // Hier ist die Anzeige dann aber wirklich für 10 Sekunden eingefroren und zeigt nichts an, gibt sicher schönere Lösungen mit Timern und Interrupts, bin bei Arduino noch nicht so drin, könnte mich da aber mal schlau machen
min_bar = pressure_bar;
active = true;
}
So ist es dann, dass sobald der Druck von 1 Bar überschritten wurde 10 Sekunden gewartet wird, bis das Speichern des Minimalwertes aktiviert wird, damit erstmal Öldruck aufgebaut wird.
PHP-Code:
if (pressure_barLast > pressure_bar && active){ // Deaktivieren der Minimalberechnung
min_bar = 0.0;
active = false;
}
Sobald der Wert unter 1 Bar sinkt wird die Auswertung für Minimum wieder gestoppt, der Wert auf 0 gesetzt und sobald der Druck wieder über 1 Bar steigt beginnt die Initialisierung mit den 10 Sekunden von vorne.
Lesezeichen