hc-sr04 e arduino mega letture errate

salve, come ho già detto sto cercando di realizzare una macchinina che possa sia essere radiocomandata sia schivare gli oggetti da sola. Per i comandi via bluetooth nessun problema, l'auto risponde a dovere (anche se consuma una marea di pile AA), ho problemi con evitare gli ostacoli. Il sensore messo in posizione verticale (la classica con i due "occhi" che guardano verso avanti) da letture errate e spesso non rileva nulla, lo stesso pero messo in posizione orizontale (con i due occhi che guardano il soffitto o il pavimento) da misurazioni accurate e ripetibili anche a distanze elevate. Ho provaro a rifare tutte le saldature sul pcb ma non ho notato alcun miglioramento. Cosa potrebbe essere? Come potrei risolvere?

Questo è il codice che uso al momento per testare il sensore:

//HC RS04 Sensore ultrasuoni
int triggerPort = 50;
int echoPort = 51;


void setup() {
pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
Serial.begin( 9600 );
Serial.println( "Sensore ultrasuoni: ");

}

void loop() {
//porta bassa l'uscita del trigger
digitalWrite( triggerPort, LOW );

//invia un impulso di 10microsec su trigger
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );

long duration = pulseIn( echoPort, HIGH );

long r = 0.034 * duration / 2;
Serial.print( "durata: " );
Serial.print( duration );
Serial.print( " , " );
Serial.print( "distanza: " );

//dopo 38ms è fuori dalla portata del sensore
if( duration > 38000 ) Serial.println( "fuori portata");
else { Serial.print( r ); Serial.println( "cm" );}
//aspetta 1.5 secondi
delay( 1500 );
}

Ho provato anche ad usare la libreria newPing.h (noto un notevole rallentamento della macchinina durante le rilevazioni, risponde ai comandi bluetooth dopo quasi 30secondi) ma con i medesimi risultati.

Non dovrebbe esserci grande differenze se il hc-sr04 é montato in orizontale o in verticale. Ciao Uwe

Fa sempre così, con gli occhi che guardano verso l'alto misura 3m di soffitto,poi mettendo la mano tra soffitto e sensore misura correttamente la distanza anche per ore. Mettendo il sensore con gli occhi che guardano verso avanti il sensore da quasi sempre "fuori portata" e quando misura da misurazioni errate e non ripetibili.

Se lo giri di 180 Gradi usandolo in orizontale ma stando sulla testa? per capirci se i pin sono sopra girando li trovi sotto.

Mi puzza di qualche pezzo non fisso nei trasduttori ultrasuoni.

Ciao Uwe

Idem, mettendo i Pin sia verso l’alto che verso il basso non cambia nulla. Sai consigliarmi un venditore affidabile per sensore di discreta qualità?