Stoppuhr mit Sensordaten steuern

Hallo,

ich arbeite aktuell an einem Projekt bei dem es unter anderem darum geht eine Stoppuhr via Sensor daten zu steuern.

Sobald Flüssigkeit einen Durchflussensor passiert, soll dieser die Stoppuhr starten. Wenn keine Flüssigkeit mehr fließt soll der Wert angezeigt werden.

Mein Code funktioniert auch zu 95%, das heißt: Ich habe l/sekunde, Gesamtmenge und Stoppuhr auf einem LCD, allerdings schaffe ich es nicht die oben genannte Funktion zu programmieren.

Den Codeabschnitt, welcher das ganze Steuern soll sieht so aus:

digitalWrite(ledPin, LOW);            // Initiate LED and Step Pin States

  sensorValue = flowRate; 

  
  if (flagA == 0 && flowRate > 0.0 && blinking == false)
  {
    startTime = millis();                               // store the start time
    blinking = true;                                  // turn on blinking while timing

    
    flagA == 1;
  }

  else if (flagA == 1 && flowRate == 0.0 && blinking == true)
  {
    lcd.setCursor(0, 0);
    blinking = false;                                    // turn off blinking, all done timing
    
    // Routine to report elapsed time
    elapsedTime =   millis() - startTime;                // store elapsed time
    elapsedMinutes = (elapsedTime / 60000L);
    elapsedSeconds = (elapsedTime / 1000L);              // divide by 1000 to convert to seconds - then cast to an int to print
    elapsedFrames = (elapsedTime / interval);            // divide by 100 to convert to 1/100 of a second - then cast to an int to print
    fractional = (int)(elapsedFrames % frameRate);       // use modulo operator to get fractional part of 100 Seconds
    fractionalSecs = (int)(elapsedSeconds % 60L);        // use modulo operator to get fractional part of 60 Seconds
    fractionalMins = (int)(elapsedMinutes % 60L);        // use modulo operator to get fractional part of 60 Minutes

    flagA = 0;

Wie man sicher sieht bin ich alles andere als nen Profi und muss mir den meisten Teil des Codes ergooglen bzw. mich massiv einlesen.

Wenn jemand von euch ne Idee hat, wie ich den Code zum laufen bekommen soll, dann freue ich mich auf eine Antwort. Bei Bedarf poste ich auch den gesamten Code.

Danke!

Holinam:
... Codes ergooglen ...

Das Programmieren mittels copy&paste ist Meiner Meinung nach die schlechteste aller Möglichkeiten.

Zeichne das, was Du erreichen möchtest, als Programmablaufplan und baue erst dann Dein Programm auf. Achte beim Zeichnen darauf, dass die Einzelschritte so klein sind, dass sie programmiert werden können. Wenn Du das hast, kannst Du wegen einzelner Schritte noch einmal hier fragen. Dabei kannst Du damit rechnen, sehr kompetente Hilfe zu bekommen.

Gruß

Gregor

Danke für die Antwort.
Das es nicht die beste Möglichkeit ist weiß ich. Leider habe ich keine/wenige Vorkenntnisse was Programmieren angeht und muss mir deshalb fertigen Code suchen und gucken, dass ich den verstehe.
Leider habe ich nicht die nötigen zeitl. Ressourcen um mich so ausgiebig damit zu beschäftigen.

Aktuell ist das Programmieren eher ein Mittel zum Zweck, und dient dazu mein Projekt zum Laufen zu bekommen. Diese Aussage mag jetzt im ersten Augenblick merkwürdig klingen, jedoch ist es nicht so, dass ich abgeneigt wäre etwas zulernen, nur fehlt mir aktuell einfach die Zeit um bei null anzufangen.

Ich würde Dir gerne ausführlich antworten. Aber ich muss jetzt zu meiner Verabredung.

Holinam:
Leider habe ich nicht die nötigen zeitl. Ressourcen um mich so ausgiebig damit zu beschäftigen.

Nuja ... Zeit ist Geld :slight_smile: Vielleicht kommst Du mit der zweitschlechtesten Möglichkeit zurecht: Lass Dir das Benötigte gegen Bezahlung programmieren. Sorry, das ist eine blöde Antwort, aber für mehr habe ich gerade keine Zeit.

Schön' Amd!

Gregor

Ich sehe nicht den ganzen Sketch aber flagA == 1; ist ein = zuviel. In else ist es richtig.

Hallo,

sehe ich genauso die Flankenerkennung funktioniert so nicht

flagA==1 ist falsch ein = rausnehmen dann sollte es gehen.

Heinz