/*
Home Challange (Programmbeschreibung):
Durch einen Sensor wird der Servomotor angesteuert.
Er startet in horizontaler Ebene. (Geschlossene Schranke )´
Durch eine Bewegung wird das Tor geöffnet.
Der Geöffnete Zustand wird durch die LED angezeigt.
Mit einem Knopf lässt sich die Schranke nach unten fahren.
*/
#include <Servo.h>
// Pin-Zuweisung
const int Bewegungsmelder = 2; // PIR-Sensor
const int Taster = 3; // Knopf
const int Schranke = 9; // Servo
const int LED = 4; // LED
Servo servo;
bool schrankeOben = false; // Status der Schranke (oben oder unten)
void setup() {
pinMode(Bewegungsmelder, INPUT);
pinMode(Taster, INPUT_PULLUP);
pinMode(LED, OUTPUT);
servo.attach(Schranke);
servo.write(90); // Schranke startet geschlossen
digitalWrite(LED, HIGH);
}
void loop() {
if (digitalRead(Bewegungsmelder)){
digitalWrite(LED, LOW);
}
if (!digitalRead(Bewegungsmelder) && !digitalRead(Taster)){
digitalWrite(LED, HIGH);
}
if (!schrankeOben && digitalRead(Bewegungsmelder)) {
servo.write(0);
schrankeOben = true;
delay(50);
}
if (schrankeOben && !digitalRead(Taster)) {
servo.write(90);
schrankeOben = false;
delay(50);
}
}