pulseIn zeigt nichts an? Welchen Fehler habe ich gemacht?

Hallo zusammen,
als Arduinoanfänger wollte ich Ultraschallsensoren verwenden. Dazu wird die pulseIn Funktion verwendet.

Um diese Funktion kennen zu lernen, habe ich ein kleines Programm geschrieben, um mir mit den Seriellen Monitor die Zeiten für ein HIGH Signal am Ausgang ausgeben zu lassen.
Alle 550ms soll das Ausgangssignal von High auf LOW gesetzt werden. Dazu möchte ich mir die Länge des High Signals anzeigen lassen. Leider ist das Ergebnis der Zeitmessung bei mir immer 0, obwohl das HIGH und LOW Signal oft wechselt.

Habe ich die pulseIn Funktion falsch verstanden?

void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(ausgang8)==LOW)
{
digitalWrite(ausgang8, HIGH);
}

if (millis()>(milli_alt + 850))
{
milli_alt = millis();
digitalWrite(ausgang8,LOW);
}

zeitdauer = pulseIn(ausgang8, HIGH);
Serial.println(zeitdauer);

if (digitalRead(ausgang8)==LOW){
Serial.println("Ausgang8 ist LOW");
}

if (digitalRead(ausgang8)==HIGH){
Serial.println("Ausgang8 ist HIGH");
}
}

Setze Deinen Sketch bitte in Codetags (</> oben links im Forumseditor), damit er für alle besser lesbar ist.
Da fehlt aber ein Teil vom Code.
PulseIn ist zum Messen eines Eingangssignals da. Außerdem blockiert es. Da dürfte Deine Impulserzeugung nicht funktionieren.

Gruß Tommy

Und warum nimmst du nicht eins der zahlreichen Beispiele für den Ultraschall-Sensor ?

Z.B. hier : Ultraschallsensor Beispiel

Vergleiche mal mit deinen Sketch, da siehst du wo deine Fehler sind.

if (millis()>(milli_alt + 850))

Das versagt.
BlinkWithoutDelay zeigt, wie es richtig geht.

pulseIn() ist blockierend wie delay() Du kannst als nicht eine Dauer eines impulses auf einem Pin lesen das im selben Sketch gesetzt/gelöscht wird.