Ultraschallmessung fehlerhafte Werte

Ich führe das Programm alle 200ms aus. Da sind die Ergebnisse gut.

 digitalWrite(triggerPin2, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin2, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin2, LOW);
  messung2 = pulseIn(echoPin2, HIGH, timeout); // Echozeit auslesen.

  // Wenn "messung" größer Timeout dann Messung ist "0"
  // Timout ist 18000 also 306 cm
  // Ist messung "0" dann ungültig, LCD-Ausgabe überspringen
  if (messung2 > 0) {
    ergebnis2 = (messung2 / 2) / 29; // Millisec in cm umrechnen.