"pulseIn()" bremst Ablauf genau so wie "delay()"

Wenn du nicht warten willst, heisst die Funktion digitalRead :wink:

static boolean prevState;
boolean curState = digitalRead(pin);
if (curState != prevState ) {
   prevState = curState;
   if (curState) {
   //  a change LOW -> HIGH has happened
   // store micros
   } else  {
   //  a change HIGH ->LOW has happened
   // calculate micros() - stored_micros
   }
}

oder so ähnlich ...

pulseIn() macht nur Sinn, wenn du sowieso warten willst.

Edit: Ziemlich genau, wenn loop() schnell ist. Wenn es noch genauer sein soll, musst du Interrupts nehmen