Arduino UNO und 2 x PIR

Hallo

Habe hier ein kleines Problem. Die Schaltung soll 2 Räume mit je einem PIR und einem Ausgang realisieren.
Jedoch Leuchten sind die Ausgänge nun immer auf High. nehme ich einen PIR raus geht es.
die Funktion Alarm soll beide Ausgänge Tasten.

//#include <SoftPWM.h>

//Variablen deklarieren
int AlarmPin = 13;            //Alarmeingang
int LedPin = 4;               //Lampe Flur gross
int LedPin1 = 6;              //Lampe Flur klein
int BewegungsPin = 3;         //Bewegungsmelder Flur gross
int BewegungsPin1 = 8;        //Bewegungsmelder Flur klein
int Alarm = 0;
int Bewegung = 0;             //Variable, die den Zustand des Bewegungsmelders speichert (0=keine Bewegung, 1=Bewegung) Flur gross
int Bewegung1 = 0;            //Variable, die den Zustand des Bewegungsmelders speichert (0=keine Bewegung, 1=Bewegung) Flur klein
int HelligkeitsPin = A0;      //Anschluss Fotowiderstand LDR
int Helligkeitswert = 0;      //Variable, die einen der Helligkeit entsprechenden Digitalwert speichert
unsigned long StartTime = 0;  //Variable, die für die Berechnung der Leuchtdauer der Lampe verwendet wird Flur gross
unsigned long StartTime1 = 0; //Variable, die für die Berechnung der Leuchtdauer der Lampe verwendet wird Flur klein

//Prozedur zur Initialisierung des µControllers (wird einmalig beim Start durchlaufen)
void setup() {
  pinMode(LedPin, OUTPUT);          //Anschluss der LED wird als Ausgang gesetzt
  pinMode(LedPin1, OUTPUT);
  pinMode(BewegungsPin, INPUT);     //Anschluss der Steuerleitung des Bewegungsmelders wird als Eingang gesetzt
  pinMode(BewegungsPin1, INPUT);
  pinMode(HelligkeitsPin, INPUT);   //Anschluss des Spannungsteiler-Abgriffes wird als Eingang gesetzt
  pinMode(AlarmPin, INPUT);  
 
  // Initialize
        //SoftPWMBegin();

        // Create and set pin . to 0 (off)
        //SoftPWMSet(6, 0);
              
        // Set fade time for pin .. to ... ms fade-up time, and ... ms fade-down time
        //SoftPWMSetFadeTime(6, 3000, 3000);
  
}

//Schleifenprozedur, die immer wieder neu durchlaufen wird
void loop() {

  
  Helligkeitswert=analogRead(HelligkeitsPin);   //analogen Helligkeitswert einlesen (wird im µController in Digitalwert umgewandelt
  Bewegung=digitalRead(BewegungsPin);           //Zustand des Bewegungsmelders auslesen
  Bewegung1=digitalRead(BewegungsPin1);
  Alarm=digitalRead(AlarmPin);
  
  // Flur gross
  if (Bewegung== HIGH && Helligkeitswert>750) {   //Wenn Bewegung vorliegt und der Helligkeitswert 750 überschreitet,...
    //SoftPWMSetPercent(13, 100);
    digitalWrite(LedPin,HIGH);                  //wird die Lampe eingeschaltet...
    StartTime=millis();                         //und die aktuelle Zeit (Zeit ab Programmstart in Millisekunden) wird abgespeichert
  }
  else if (millis()-StartTime>4000){            //ansonsten, wenn 2000 Millisekunden Differenz überschritten sind,...
    //SoftPWMSetPercent(13, 0);
    digitalWrite(LedPin,LOW);                   //wird die Lampe ausgeschaltet
    }
  // Flur klein
  if (Bewegung1== HIGH && Helligkeitswert>750) {   //Wenn Bewegung vorliegt und der Helligkeitswert 750 überschreitet,...
    //SoftPWMSetPercent(13, 100);
    digitalWrite(LedPin1,HIGH);                  //wird die Lampe eingeschaltet...
    StartTime1=millis();                         //und die aktuelle Zeit (Zeit ab Programmstart in Millisekunden) wird abgespeichert
  }
  else if (millis()-StartTime1>4000){            //ansonsten, wenn 2000 Millisekunden Differenz überschritten sind,...
    //SoftPWMSetPercent(13, 0);
    digitalWrite(LedPin1,LOW);                   //wird die Lampe ausgeschaltet
    }
  

  if (Alarm == HIGH);{
  digitalWrite(LedPin, HIGH);
  digitalWrite(LedPin1, HIGH);
}
  else
  digitalWrite(LedPin, LOW);
  digitalWrite(LedPin1, LOW);
 }
}

Beim kurzen überfliegen, in der letzten If-Anweisung fehlt bei "else" eine Klammer.

Ja stimmt.

Behebt ein Problem. Aber die Ausgänge blinken.

Marcosbk:
Aber die Ausgänge blinken.

Aber das ist doch richtig.
Wird doch immer in der Loop aufgerufen.

Oh, richtig. Habe den Taster falsch aus gewertet.

Aber warum werden die millis zum Abschalten ignoriert?

Keiner ne Idee?

Hast du die Fehler bereits ausgemärzt?

[color=#222222][/color]
  if (Alarm == HIGH);{[color=#222222][/color]
  digitalWrite(LedPin, HIGH);[color=#222222][/color]
  digitalWrite(LedPin1, HIGH);[color=#222222][/color]
}[color=#222222][/color]
  else[color=#222222][/color]
  digitalWrite(LedPin, LOW);[color=#222222][/color]
  digitalWrite(LedPin1, LOW);[color=#222222][/color]
 }
[color=#222222][/color]
  if (Alarm == HIGH){[color=#222222][/color]
  digitalWrite(LedPin, HIGH);[color=#222222][/color]
  digitalWrite(LedPin1, HIGH);[color=#222222][/color]
}[color=#222222][/color]
  else {[color=#222222][/color]
  digitalWrite(LedPin, LOW);[color=#222222][/color]
  digitalWrite(LedPin1, LOW);[color=#222222][/color]
 }

Nein noch nicht.