Отказ датчика расстояния при использовании проверенной библиотеки. Один из простейших способов решения - программный. Думаю, что универсальный.
duration = pulseIn(echoPin, HIGH);
if (duration == 0)
{// датчик завис - значит данные игнорируем и призводим сброс
pinMode(echoPin, OUTPUT);
digitalWrite(echoPin, LOW);
delay(150);
pinMode(echoPin, INPUT);
Serial.println("Reload ultrasonic, fix bug SR04");
Ничего нового - думаю, это решение приходит первым в голову.