/*
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);
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
servo1:GND
servo1:V+
servo1:PWM
pir1:VCC
pir1:OUT
pir1:GND
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
r1:1
r1:2
r2:1
r2:2
led1:A
led1:C