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);
}
}