Distanzmessung mit VL53LOX - Programmierungsproblem

Hallo an alle Arduino-Genies....,

Ich möchte den Abstand eines beweglichen Objektes (Bowingball) auf der Bahn messen. Mit dem Lasersensor VL53LOX geht das ganz gut mit einer akzeptablen Genauigkeit. Soweit, so gut....

Leider bekomme ich es nicht hin, dass der Messwert auf der LCD anzeige stehen bleibt. Der ball läuft durch, der Abstand wird gemessen und angezeigt, verschwindet aber sofort wieder weil sofort die neue Messung erfolgt.

Der Messbereich umfasst ca. von 20 cm ...bis 100 cm. In diesem Bereich kann sich der Ball befinden. Die Geschwindigkeit des Balles beträgt ca. 20 kmh bis 27 kmh. Die Messung soll im ersten Drittel der Bahn erfolgen.....(siehe Video)

Zwischen jedem Ballwurf liegt die Zeit bei ca. 2 - 3 min. Die Anzeige der gemessenen Distanz soll ca. 5 sec. auf dem Display stehen bleiben.

Geht das überhaupt - und wenn, WIE ?????

Ich glaube an euch....XXAL

How to Decrease Bowling Ball Force for Better Results - YouTube - für alle die, die noch nie Bowling gespielt haben...

XXAL:
... Geht das überhaupt - und wenn, WIE ?????

Du schreibst, dass Du das mit dem Messen schon hinbekommst (zumindest verstehe ich das so). Zeig' am besten den Sketch, mit dem es klappt, dann wird man Dir auch einen Tipp geben können, wo Du was einfügen musst, um das Gewünschte zu erreichen.

Fasse den Code am besten in Code-Tags, damit er scrollbar ist.

Gruß

Gregor

Merk dir einfach die Messung und aktualisiere sie immer auf den Maximalwert. Den immer auf das Display. Wenn sich der X Sekunden nicht geändert hat, setz ihn wieder auf 0

ElEspanol:
Merk dir einfach die Messung und aktualisiere sie immer auf den Maximalwert. Den immer auf das Display. Wenn sich der X Sekunden nicht geändert hat, setz ihn wieder auf 0

Das mal als Code zur Anregung:

const byte potiPin = A0;
uint16_t aktWert, maxWert;
uint32_t aktMillis, merkMillis;
const uint16_t zeitBisRuecksetzen = 5000, schwellWert = 100;
bool ruecksetzen;

void setup()
{
  Serial.begin(9600);
  Serial.println("Anfang");
}

void loop()
{
  aktMillis = millis();
  aktWert = analogRead(potiPin);
  //Serial.print("neuer Wert: ");
  //Serial.println(aktWert);
  if (aktWert > maxWert)
  {
    merkMillis = aktMillis;
    ruecksetzen = true;
    maxWert = aktWert;
    if (aktWert > schwellWert)
    {
      ausgabe();
    }
  }
  if ((aktMillis - merkMillis >= zeitBisRuecksetzen) && ruecksetzen)
  {
    ruecksetzen = false;
    maxWert = 0;
    ausgabe();
  }
}

void ausgabe()
{
  Serial.print("maximaler Wert: ");
  Serial.println(maxWert);
}