Fensterkontakte überwachen.

In den Beispielen ist ein Programm das einen Schalter am Digitalpin abfragt. Ich habe es etwas erweitert. Szenario alle Fenster einer Wohnung sollen überwacht werden. Beim öffnen der Wohnungstür leuchtet ein Led wenn ein Fenster oder beide Fenster auf sind.
Tür und Fenster sind mit Umschaltontakten versehen die bei geschlossene Fenster auf 0 Volt liegen. Bei offenen Fenster oder Tür werden über 10kOhm 5 Volt auf den Digitalpin gelegt. Wenn ein oder beide Fenster offen sind passiert nichts erst wenn die Tür geöffnet wird und eins oder beide Fenster offen sind wird in diesem Beispiel LED13 ( auf Arduino Uno bereits vorhanden) eingeschaltet.Kontakte

 

Hier das Programm, wer es verstanden hat kann es mühelos auf mehr Fenster erweitern:

Die Kommentare habe ich nocht nicht angepasst.

Statt Schaltern kann man zum testen auf dem Steckbrett auch einfach Kabel umstecken.

/*
Fensterüberwachung
 
 Ein Led wird eingeschaltet wenn schalter Dor und Schalter Fenster1 oder Fenster2 auf 5V liegen.
 
 
 The circuit:
 
 * 10K resistor attached to pin 2 from ground
 
 * Hinweis: auf den meisten Arduinos ist bereiz ein  LED auf der Platine mit Pin 13 verbunden.
 
 
 
 
 

modified by http://pc-rentner.de
 */

// constants won't change. They're used here to
// set pin numbers:
const int fenster1 = 2;     // the number of the pushbutton pin
const int fenster2 = 3;     // the number of the pushbutton pin
const int dor = 11;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState1 = 0;         // variable for reading the pushbutton status
int buttonState2 = 0;
int buttonState6 = 0;         // Türkontakt
void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(fenster1, INPUT);
  pinMode(fenster2, INPUT);
}

void loop(){
  // read the state of the pushbutton value:
  buttonState1 = digitalRead(fenster1);
   buttonState2 = digitalRead(fenster2);
buttonState6 = digitalRead(dor);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState6 == HIGH and buttonState1 == HIGH or buttonState2 == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}