if abfrage in einer if

Hi,

ich brauche mal eure Hilfe. Ich lese 2 Sensoren aus, und möchte das wenn beide < 900 ergeben das er noch einmal nach 2 Sekunden prüft ob es wirklich noch < 900 ist. Wie stelle ich das an?

So wie ich es grad habe geht es nicht. Er prüft das zweite mal nicht.

void loop()
 {
    int test1 = analogRead(0) + analogRead(3); 
    if (test1 < 900)
     
    {
        int test2 = analogRead(0) + analogRead(3);
        delay(2000);                    // 2 Sekunden warten
        if (test2 < 900)
        
        {
        digitalWrite(LED, HIGH);
        }
        
    }
    else
    {
        digitalWrite(LED, LOW);
    }
 }

PS: bin Anfänger

Du musst das Delay vor dem Auslesen der Analog-Eingänge machen

Ungetestet, könnte aber trotzdem funktionieren.

void loop()
{
  int test = analogRead(0) + analogRead(3);
  static long previousMillis;
  if(test < 900)
  {
    if(millis() - previousMillis > 2000)
    {
      digitalWrite(13, HIGH);
    }
  }
  else 
  {
    previousMillis = millis();
    digitalWrite(13, LOW);
  }
}

Den Delay nach oben zu setzen hat geholfen. Danke euch beiden.

Ich lese 2 Sensoren aus, und möchte das wenn beide < 900 ergeben

Ich weiß nicht ob Du falsch beschrieben hast oder falsch programmiert hast.
Der Code kontrolliert nicht on beide analogen Eingänge werte kleiner als 900 geben sonder ob die Summe der beiden Werte kleiner als 900 ist.
Wenn beide kleiner als 900 sein sollen dann:

    if ((analogRead(0) < 900)&&(analogRead(3) < 900))

Grüße Uwe

Der Fehler ist mir vor ca einer Stunde auch aufgefallen.
Aber danke für den Hinweis.

Uwes Kristallkugel funktioniert ja doch :wink: Hab aber auch gedacht nach dem oberen Sketch, dass er die Summe der beiden Werte mit 900 vergleichen wollte.