//Bulus, Abdulbaki
//886598
//Autoschranke
//Das Auto (KNOPF) naehrt sich der Schranke (SERVO)
//Der Sensor auf der Schranke fasst das Auto und die Schranke geht auf
//Das Auto fährt durch und die Schranke fährt wieder zurück
#include <Servo.h> //in Biblithek eingebunden
#include "SR04.h" //in Biblothek eingebunden
#define TRIG_PIN 7 //Trig in Pin 7
#define ECHO_PIN 4 //Echo in Pin 4
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);//Trig und Echo wird bestimmt
Servo myservo; //servo objekt erstellen um servo steuern zu können
long a; //a wird konvertiert in long-datei
long duration = 0; //variable messt die zeit
int pos = 0; //variable speichert die position
double cm ; //variable um die distanz zu einem objekt zu speichern
int Knopf =12; //Knopf als pin 12
int LED =2; //Led als pin 2
void setup() {
myservo.attach(9); //servo ist an pin 9 angeschlossen
pinMode(Knopf, INPUT_PULLUP); //Knopf ist an pin 12 angeschlossen
pinMode(LED, OUTPUT); //led ist an pin 2 angeschlossen
Serial.begin(9600);// Serial Monitor 9600
delay (100);
}
void loop() {
a = sr04.DistanceAvg(10,10);//Wegberechnungsverfahren
Serial.print(a); //a für ein Variable
Serial.println("cm"); //Centimeter
Serial.print(a/2.54); // Formel zu Umrechnung Inch
Serial.println("inch");
delay(1000);
Serial.println("bitte naeher anfahren");
Serial.println("bitte Knopf gedrueck halten um system zu aktivieren");
while (digitalRead(Knopf) == LOW && a < 5) { //Diese while-Schleife wird so lange ausgeführt, Knopf funktionier a > 5
//wie die Taste gedrückt wird und der Abstandssensor ein Objekt innerhalb des angegebenen Bereichs erkennt
for (pos = 0; pos <= 180; pos += 1) { // servo wird an die position 'pos' hinbewegen
myservo.write(pos);
delay(10); // warten bis servo die position erreicht
}
Serial.println("Vorsicht, die Schranke schliest");
for (pos = 180; pos >= 0; pos -= 1) { //servo dreht sich 0-180 grad
myservo.write(pos); // servo wird an die position 'pos' hinbewegt
delay(15);// servo erreicht die position in einer Geschwindigkeit
}
digitalWrite(LED, 1); //LED wird angeschaltet
delay(100);
digitalWrite(LED, 0);//LED wird ausgeschaltet
}
}