DMTimer läuft nicht richtig

Hat jemand Erfahrung mit dem DMTimer? Ich habe ihn bei einem Arduino Nano Projekt benutzt und stellte fest daß bei mehreren Timern(7Stück) mit verschiedenen Zeiten schon ab dem 3.oder4.Timer die Zeiten krass nicht mehr stimmen, z.B.statt 10sec.nur10ms. Meine Umrechnung müßte stimmen, also 10sec.=10000000µsec. Oder mache ich da was falsch?

Wie soll das jemand ohne Deinen Code einschätzen können.
Setze Deinen Code bitte in Codetags (</>-Button oben mitte im Forumseditor oder [ code] davor und [ /code] (ohne Blank) dahinter oder gehe in der IDE auf Bearbeiten - Für Forum kopieren und füge es hier ein).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

DMTimer timer1(1000000);//1sec.Intervall
DMTimer timer2(60000000);//60sec.Intervall
DMTimer timer3(600000000);//10min..Intervall
DMTimer timer4(1000000);//1std.Intervall
DMTimer timer5(1000000000);//10sec.Intervall
DMTimer timer6(1800000000);//30min.Intervall
DMTimer timer7(3600000000);//1std.Intervall

void Pumpe1(){
  if((Flag7==1)&&(Flag8==0)&&(Flag3==0)){
    digitalWrite(Relais1,HIGH);
   if(timer5.isTimeReached(now)){
    Flag8=1;
    digitalWrite(Relais1,LOW);
   }
  }
    if(Flag8==1){
     if(timer2.isTimeReached(now)){Flag8=0;}
     }
      if(Flag9==1){
       if(timer6.isTimeReached(now)){
        Flag7 = 0;
        Flag8 = 0;
        Flag9 = 0;        
        }
       }
}

void loop() {
  now = micros();
  Pumpe1(); 

Ok gute Idee, obenstehend ein Auszug vom Code. Vielleicht könnt ihr da ein Fehler erkennen.

Der Code ist nicht kompilierbar. Da fehlen #include, Klammern, Hinweise auf die Lib zum DMTimer (Link)

Gruß Tommy

Gut ich bin raus.
Ich hatte das mit dem multiple Timer schon mal angesehen, aber wenn Du hier nur mit Bruchstücken kommst und meinst, das jemand sich das antut alle seine Fragezeichen zu erarbeiten, dann viel Glück.

Da ist nichts kommentiert, was der Code an der Stelle machen soll.
Und woher/wohin die Flags, das wäre wichtig um Abhängigkeiten zu erkennen.

Na dann…

Was sollen wir mit dem Beispiel anfangen?
WennDu nicht Deinen Code compilierfähig einstellst, willst Du anscheinend keine Hilfe.

Gruß Tommy

Das war mein (gut gemeinter) Hinweis auf die lib und wie es aussieht, wenn es im Einsatz ist und das ich mir schon am Nachmittag Gedanken gemacht hatte…

Wenn Du Lust hast, schau mal auf die definierten timer ab 4 und die Kommentare dahinter.

Seit 2 Jahren ist ein Fehler bekannt und keine Reaktion darauf.

1 Like

Die Betonung liegt wohl bei [ein].
Da auch sonst keine geschlossenen Issues vorliegen und das Repo seit 3(!) Jahren nicht angefasst wurde, könnte es sein, das der Ersteller nicht mehr unter uns weilt?

Nein!

Auch falsch.

Ich habe den DMTimer jetzt mit delay() ersetzt. Funktioniert ist aber nicht ganz so schön. BalkonbewaesserungV18.ino (5.6 KB)
Den Sketch mit DMTimer habe ich hochgeladen ohne Gewähr zur freien Verwendung. Vielleicht funktioniert der DMTimer bei euch oder ihr habt ein Tip. Zu beachten wäre daß noch mehrere Timer dazukommen wenn noch mehr Blumentöpfe bewässert werden sollen. Bei gleichen Zeiten habe ich trotzdem einen weiteren Timer definiert damit sie sich nicht irgendwie “beißen”. Aber bei mir stimmen die Zeiten nicht überein mit den definierten.

Hallo
bitte schreibe in einfachen Worten wie die BalkonbewässerungsMaschine funktionieren soll und das ganz einfach.
Was passiert wo, wie lange und mit welchen Abhängigkeiten.
Grundsätzlich sollte es der Steuerung egal sein wie viele Blumentöpfe bewässert werden sollen, die einzige Begrenzung ergibt sich durch die Anzahl der I/O Pin.

In meinem Upload habe ich ja schon einige Erklärungen zugefügt. Es ist eigentlich so daß der Blumentopf nach Erkennen der Trockenheit der Erde durch den Feuchtigkeitssensor nach einer zusätzlichen Wartezeit von x-Stunden (je nach Pflanze) in Befeuchtungsintervallen von 5sec.(kommt auf die Pumpe drauf an) für max.30min.bewässern soll in 1min.-Abständen(um dem Wasser Zeit zu geben zu versickern) oder vor den 30min.abzubrechen falls die Befeuchtung schon ausreichend ist. Danach würde nach einer weiteren Feuchtigkeitstrockenmessung das ganze mit Trockenwartezeit erneut ablaufen. Die Zeiten sind natürlich mehr oder weniger Ansichtssache, bin auch kein Botaniker. Mich interessierte eigentlcih nur ob ihr beim DMTimer die gleichen Probleme habt bzw.ob ich da einen Fehler beim DMTimer habe. Ich vermute daß der DMTimer einen Bug hat, ich habe mich auch schon gewundert daß da lange kein Update war und vermutet daß der Entwickler verstorben ist oder ein anderes Hobby mittlerweile hat. :sneezing_face:

Und genau darum habe ich dich in Posting #9 schon darauf hingewiesen, dass ein solcher Bug existiert, und dir auch gleich die Reparaturanleitung mitgeliefert.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.