Wenn Zustand länger anhält if bedingung

Hallo,
Ich habe hier ein kleines Solartracker Projekt und suche schon den ganzen Abend nach einer Lösung. Jedoch ist das meiste für mich noch zu komplex. Vielleicht mag mir ja jemand helfen. Ja ich bin blutiger Anfänger und hab nicht vor hier ein meister zu werden da ich nach diesem Projekt, sehr wahrscheinlich erstmal keine Zeit für das Programmieren mit Arduino finden werde.

Mein Code funktioniert soweit hab mir bis jetzt alles selbst zusammen getragen. Ich arbeite mit Delay da ich im Wechsel Schrittmotoren über Relais steuere wo keinesfalls mehrere Relais schalten dürfen da es sonst raucht. Jedoch möchte ich noch bei der if Bedingung eine Zeit hinzufügen.zB. Wenn der Sensor 1 kleiner ist als sensor 2 und das länger als 600 Sekunden. Damit möchte ich verhindern das bei jeder kleinen Wolke oder vorbeifliegenden Fliege der Lineartrieb angesteuert wird. Habe mich schon über "millis" Informiert aber werde daraus ned schlau..
Mein Solartracker arbeitet über 4 Photowiderstände.

auf blöd geschrieben sollte der Code so aussen:
if ( senor1 => sensor2 && dieser Zustand länger als 600 sekunden besteht)

CODE:

   
   if (  sensorul >= sensorol +250 )
  
 { digitalWrite(2, LOW);
    digitalWrite(3, LOW);
  // Fahre Neigungsmotor aus
 
     delay(1000);
       digitalWrite(2, HIGH);
        digitalWrite(3, HIGH);
         delay(2000);
         }

Bin dankbar für jede Hilfe! Grüße!

{
  if (sensor1 >= sensor2)
  {
    if (ausgelöst == false)
    {
      ausgelöst = true;
      startZeit = millis();
    }
  }
  else
  {
    ausgelöst = false;
  }
  if (ausgelöst == true && millis() - startZeit >= wiederholzeit)
    tuwas()
  }
}
  if (ausgelöst == true && millis() - startZeit >= wiederholzeit){
    tuwas();
  }

Bitte nochmal nachsehen.
Ggfls. einfach STRG-T drücken.
Es ist nur eine Antwort auf die Bedingung.
Die benötigt keine Klammer.

Und bevor wir über Klammern streiten, ist stray angesagt :wink: Oder ;
Das war Absicht.

{
  if (sensor1 >= sensor2)
  {
    if (ausgelöst == false)
    {
      ausgelöst = true;
      startZeit = millis();
    }
  }
  else
  {
    ausgelöst = false;
  }
  if (ausgelöst == true && millis() - startZeit >= wiederholzeit)
    tuwas();
  
}

Was willst Du?
Wenn Du meinst ich bin zu blöd ne Bedingung aufzulösen, dann versuche Deinen mal zu kompilieren.

Ach!

mit der if Bedienung bin ich absolut einverstanden. gute Arbeit.
Was will ich? Ich bitte um ein Semikolon und eine geschweifte Klammer.

NEIN!
Das Semi von mir aus.
Die Klammer niemals.
Und nochmal:

Dein Code kompiliert nicht.
Also las es PAP-Design oder Pseudocode korrigieren zu wollen.

Ups!
Was habe ich geschrieben?
Ich zitiere mich:

Also wenn Du schon pseudoCode verbessern willst, dann mach es von Anfang an richtig und baue nicht falsch nach.
Ende hier - der Thread ist so schon tot.

du weißt, der her kommt würde wahrscheinlicher einfach Code kopieren anstatt es anschauen und verstehen. und so holt er dein gewollter Fehler mit und kommt morgen "Dein Code funzt nicht"


wäre hilfreich wenn du sagst dass es Pseudocode ist. danke dir.

@kolaha: Es wäre schön, wenn Du langsam lernen würdest, dass man Text als Text in Codetags einstellt und nicht als Bild.

Gruß Tommy

Gib nicht an das Du Fotos machen kannst :wink:

Ups hab's @Tommy56 übersehen, egal doppelt gemoppelt hält besser :wink:

Grüße
Bernhard

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