#define TRIG_PIN A0
#define ECHO_PIN 2
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT); // Sendet ein Signal.
pinMode(ECHO_PIN, INPUT); // Empfängt ein Signal.
}
unsigned long mypulseIn (int pin, int status){
while(digitalRead(pin) == LOW){} // Wartet auf HIGH
unsigned long start = micros();
while(digitalRead(pin) == HIGH); // Wartet auf LOW
unsigned long stop = micros();
return stop - start;
}
void loop() {
digitalWrite(TRIG_PIN, HIGH); // Wenn TRIG_PIN = HIGH --> Der Arduino sendet ein 10μs Signal an den Sensor.
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW); // Wenn TRIG_PIN = LOW --> sendet der Sensor 8 Ultraschallimpulse (40 kHz).
// pulseIn --> Arduino-Funktion zur Zeitmessung von Signalen.
// ECHO_PIN wird HIGH und ein Timer beginnt gleichzeitig die Zeit zu messen bis der Puls oder die Schallwelle zurückkommt.
// --> Dann der Timer speichert die Länge des Pulses als μs in der Variablen dauer.
float dauer = mypulseIn(ECHO_PIN, HIGH);
// Distanz Rechnung = (μs --> Sekunden) * 343m/s / 2 weil pulseIn rechnet beide Wege (Hin- und Rückweg).
float distanz = (dauer / 1000000) * 343 / 2;
Serial.print("Distanz: ");
Serial.print(distanz);
Serial.println(" m");
delay(500); // halbe Sekunde delay
}