#define trigPin 9 // Pin für den Trigger des Ultraschall-Sensors
#define echoPin 10 // Pin für den Echo des Ultraschall-Sensors
#define buzzer 11 // Pin für den Buzzer
void setup() {
pinMode(trigPin, OUTPUT); // Definiert den Trigger als Ausgang
pinMode(echoPin, INPUT); // Definiert den Echo als Eingang
pinMode(buzzer, OUTPUT); // Definiert den Buzzer als Ausgang
Serial.begin(9600); // Serielle Kommunikation für Debugging starten
}
void loop() {
long duration, distance;
int frequency;
// Ultraschall-Signal senden
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Antwortzeit des Sensors messen
duration = pulseIn(echoPin, HIGH);
// Entfernung in cm berechnen
distance = (duration * 0.034) / 2;
// Beschränke die Entfernung auf einen Bereich
if (distance > 0 && distance <= 400) { // Wenn die Entfernung zwischen 0 und 50 cm liegt
frequency = map(distance, 0, 400, 2000, 200); // Entfernung auf Frequenzbereich von 2000 Hz bis 200 Hz abbilden
tone(buzzer, frequency); // Buzzer mit der berechneten Frequenz spielen
} else {
noTone(buzzer); // Wenn kein Objekt in Reichweite ist, den Buzzer ausschalten
}
// Ausgabe der Entfernung für Debugging-Zwecke
Serial.print("Entfernung: ");
Serial.print(distance);
Serial.println(" cm");
Serial.print(" Frequncy: ");
Serial.print(frequency);
Serial.println(" Hz");
delay(300); // Kurze Pause vor der nächsten Messung
}