/*************************************************
* Programm: Park Sensor Erweitert *
* Name: Suppaner Felix *
* Klasse: 2AHME *
* Datum: 23.04.2024 *
*************************************************/
#define TRIG_PIN 7
#define ECHO_PIN 2
#define ROTE_LED 8
#define GELBE_LED 13
#define BLAUE_LED 12
#define BUTTON_PIN 11
#define BEEPER_PIN 9
bool parksensorAktiviert = false;
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BLAUE_LED, OUTPUT);
pinMode(GELBE_LED, OUTPUT);
pinMode(ROTE_LED, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(BEEPER_PIN, OUTPUT);
}
void loop() {
if (digitalRead(BUTTON_PIN) == LOW) {
parksensorAktiviert = !parksensorAktiviert;
digitalWrite(11, parksensorAktiviert ? HIGH : LOW);
delay(200); // Entprellen
}
if (parksensorAktiviert) {
long zeit, Stecke;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
zeit = pulseIn(ECHO_PIN, HIGH);
Stecke = zeit * 0.032 / 2;
Serial.print("Entfernung: ");
Serial.print(Stecke);
Serial.println(" cm");
if (Stecke > 30 || Stecke < 0) {
// Blaue LED leuchten
digitalWrite(BLAUE_LED, HIGH);
digitalWrite(GELBE_LED, LOW);
digitalWrite(ROTE_LED, LOW);
tone(BEEPER_PIN, 250); // Tiefer Ton
} else if (Stecke >= 10 && Stecke <= 30) {
// Gelbe LED leuchten
digitalWrite(BLAUE_LED, LOW);
digitalWrite(GELBE_LED, HIGH);
digitalWrite(ROTE_LED, LOW);
tone(BEEPER_PIN, 500); // Mittlerer Ton
} else if (Stecke < 10) {
// Rote LED leuchten
digitalWrite(BLAUE_LED, LOW);
digitalWrite(GELBE_LED, LOW);
digitalWrite(ROTE_LED, HIGH);
tone(BEEPER_PIN, 750); // Hoher Ton
if (Stecke < 5) {
// Rote LED blinken lassen
digitalWrite(ROTE_LED, HIGH);
delay(500);
digitalWrite(ROTE_LED, LOW);
delay(500);
tone(BEEPER_PIN, 1000); // Höchster Ton
}
}
}
else {
digitalWrite(BLAUE_LED, LOW);
digitalWrite(GELBE_LED, LOW);
digitalWrite(ROTE_LED, LOW);
noTone(BEEPER_PIN);
}
delay(1000);
}