[Risolto] Identificare guasto su un sensore ad ultrasuoni HC-SR04

Per misurare qualcosa di significante devi usare un oscilloscopio e non un tester. cosí vedi la forma d'onda e la durata dei impulsi.

Non ci credo; Stai dando a pulseIn() un tempo di timeout di 60 secondi. Di defaut, omettendo il parametro timeout, il tempo di timeout é 1 secondo.
Il datasheet dice che l' impulso é da 150µS a 25mS e se non c'é un ostacolo l' impulso dura 38mS e che la distanza si calcolo il tempo del impulso in µS diviso per 58 per ottenere cm.

Il problema potrebbe essere che hai scritto:

   pinMode(trigPin, OUTPUT);
   digitalWrite(trigPin, LOW);
   delayMicroseconds(2);
   digitalWrite(tringPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(pingPin, LOW);

   pinMode(echoPin, INPUT);
   duration = pulseIn(echoPin, HIGH);
   distance = (duration/2) / 29.1;

Togli i pinMode dal loop() e mettili nel setup(). Non ha senso che ci sia. Anche se l'e secuzione dura solo intorno a 4µS puó essere che perdi l' inizio del impulso echo del sensore e percui non misuri niente.

la sintassi del "pinMode(echoPin, HIGH);" nel setup é sbaglaito.

Ciao Uwe