sensore ad ultrasuoni

per la mia tesina di quinta superiore sto cercando di creare una specie di magazzino automatizzato.
Il mio sistema deve riuscire a trovare degli oggetti (che simulano la merce) disposti casualmente su di un piano (50 x 80 ) e poi prelevarli,sull’ultima parte nessun problema ma sulla prima …
per rilevare o pensato di usare un sensore ad ultrasuoni hc sr0 4(sia per la sua economicità che semplicità di utilizzo) , facendo scorrerlo lungo il piano riesco ad individuare le coordinate x,y le quali vengono controllate dall’arduino e se entranti in un certo intervallo spedite ,via seriale , ad un altro processore.
il problema sta nel fatto che quando vado a leggere il valore certe volte è corretto ma altre è sempre pari a 57/59 o valori di 7/8 , il quale viene ignorato perchè fuori dal mio intervallo, in questo modo il miei oggetti non vengono presi.
Non posso certo andare a un esame con un progetto che certe volte va e certe no.
il collegamento seriale lo controllato e i valori che spedisco dall’arduino arrivano al processore correttamente (su 100 letture fatte cento erano corretti), il programma di arduino dovrebbe essere giusto comunque ve lo scrivo qua sotto

#include <SoftwareSerial.h>
#define Rx 0
#define Tx 1
#define pinRx 2
#define pinTx 3
int triggerPort = 7;  
int echoPort = 8;  
SoftwareSerial rs485(pinRx,pinTx);


void setup() 
{  
Serial.begin (9600);
rs485.begin(9600);   
pinMode( triggerPort, OUTPUT );  
pinMode( echoPort, INPUT );  
Serial.begin( 9600 );  
}  

   
void loop() 
{              
  digitalWrite( triggerPort, LOW );    
  digitalWrite( triggerPort, HIGH );  
  delayMicroseconds( 10 );  
  digitalWrite( triggerPort, LOW );  
  long duration = pulseIn( echoPort, HIGH );  
  long r = 0.034 * duration / 2;  
  if (r>15 && r<50) { 
  rs485.print(r); 
  }
}

,gli oggetti sono abbastanza alti perchè siano visti, il problema sembra perciò il sensore,all’inizio lo facevo raso terra e il mio prof diceva che era colpa delle onde che si incurvano e mi davano delle false letture (chissa se è vero), ma ora e sospeso 7 centimetri da terra. volevo provare a cambiare modello di sensore , questo lo comprato a 8€ che non sia il massimo c’era da aspettarselo, oppure tipo passando ad esempio a uno ad infrarossi,secondo voi a senso ?. il mio sensore è montato sopra un elettrocalamita , possibile che crei qualche problema?
in questi giorni provero a cambiare anche sensore , dato che ne o due .

Il sensore a ultrasuoni funziona con un onda sonora e capta il riflesso (eco) se lo usi troppo vicino a un pinao il piano disturba la ricezione. Penso che la soluzione migliore é un sensore a infrarossi tipo Sharp GP2Y0A21YK0F (campo misura 10-80cm) oppure Sharp GP2D120XJ00F (4-30cm)

Ciao Uwe