Brunello:
Il tempo lo devi prendere subito dopo la lettura di ogni sensore, non alla fine come fai tuif (ValueDist > 10) {
t = millis(); }
if(ValueDist == 0) {
t1 = millis(); }
if(ValueDistA > 10) {
t2 = millis(); }
ovvero, una cosa cosi'
delay(50); // Wait 50ms between pings
t1 = 0 ;
int uS = sonar.ping_cm(); legge la distanza in cm
if ( uS > 0 ) { // ok. l'oggetto è passato dal via
t = millis(); // Mi segno il tempo di partenza
while ( (millis() - t ) < 10000 ) // tempo massimo ammesso 10 secondi
{
uS = sonara.ping_cm(); legge la distanza in cm
if ( uS > 0 ) { // Ok e' arrivato al secondo sensore
t1 = millis(); // segno il tempo di arrivo
break ; // esco dal while prima che scada
}
t1 = 0 ;
}
if ( !t1 ) {
Serial.println("fuori tempo massimo");
}
}
tempo = (t1 - t ) ;
if (tempo > 0 ) {
Serial.print ("Millisecondi ");
Serial.println(tempo);
}
Adesso ho capito dov'era il problema ora funziona perfettamente, grazie ancora a tutti per le risposte:)