/*********************************************** * * Aussenlampe * Fingers Welt 2018 * ************************************************/ const int PIRPin = 2; // Eingang vom PIR-Senspr #define Lichtschelle 600 #define ZeitZaehlerMax 200 int PIRState = 0; int buttonStateAlt = 1; int LightValue = 0; char LichtistAN = 0; int ZeitZaehler = 0; void setup() { pinMode(PIRPin, INPUT); Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 1) { analogWrite (3, fadeValue); delay (5); } delay (2000); for (int fadeValue = 255 ; fadeValue > 0; fadeValue -= 1) { analogWrite (3, fadeValue); delay (5); } analogWrite (3, 0); } void loop () { // Gib mir mal nackte Zahlen PIRState = digitalRead (PIRPin); LightValue = analogRead (A0); if (PIRState) digitalWrite(LED_BUILTIN, HIGH); else digitalWrite(LED_BUILTIN, LOW); // Wadde ebn.... delay (250); // Müssn wir wat tun? if ( (PIRState == HIGH) && (LightValue < Lichtschelle) && (!(LichtistAN)) ) { // Reiss die Lampe an LichtistAN = 1; ZeitZaehler = ZeitZaehlerMax; delay (200); for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 1) { analogWrite (3, fadeValue); delay (3); } } // Ist Lampe angesagt? if (LichtistAN) { ZeitZaehler--; if (ZeitZaehler == 0) { for (int fadeValue = 255 ; fadeValue >0; fadeValue -= 1) { analogWrite (3, fadeValue); delay (3); } analogWrite (3, 0); LichtistAN = 0; } // Nachtriggern bei Bewegung if (PIRState == HIGH) ZeitZaehler = ZeitZaehlerMax; } // Von if (LichtistAN) //----------------------- // Laufende Debugausgabe //----------------------- Serial.print("PIR:"); if (PIRState) Serial.print("1 "); else Serial.print("0"); Serial.print(" Licht:"); Serial.print (LightValue); Serial.print(" Zeit:"); Serial.print (ZeitZaehler); Serial.print(" Lampe:"); if (LichtistAN) Serial.print ("1 "); else Serial.print ("0 "); Serial.println (" "); }