#define PIN_TRIGGER 13 #define PIN_ECHO 12 #define SENSOR_MAX_RANGE 300 unsigned long time_of_flight; unsigned int distance; void setup() { Serial.begin(115200); pinMode(PIN_TRIGGER, OUTPUT); pinMode(PIN_ECHO, INPUT); } void loop() { // 345m/s, Hin- und Rückweg, Messung in Mikrosekunden, 0,0345 cm/us float factor = 0.0345 / 2; unsigned int timeout = (SENSOR_MAX_RANGE / factor) * 1.1; digitalWrite(PIN_TRIGGER, LOW); delayMicroseconds(3); digitalWrite(PIN_TRIGGER, HIGH); delayMicroseconds(10); digitalWrite(PIN_TRIGGER, LOW); time_of_flight = pulseIn(PIN_ECHO, HIGH, timeout); distance = time_of_flight * factor; // Ausgeben der Entfernung, sofern diese in einem sinnvollen Bereich // (positiv und unter der Messgrenze des Sensors) liegt, oder eine // Fehlermeldung ausgeben delay(1000); }