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