Problemi programma che misura le variazioni

Allora sto cercando di scrivere una funzione che mi misuri le variazioni di due sensori e me le printi sulla seriale.

void setup(){
  Serial.begin(9600);
}
void loop(){
  
  int i = 0;
  int distInf[2]={0,0};
  int distSup[2]={0,0};
  int var1=0;
  int var2=0;;
  
  while(i<3){
  distInf[i] = analogRead(0);
  distSup[i] = analogRead(1);
  var1 = distInf[i]-distInf[i+1];
  var2 = distSup[i]-distSup[i+1];
  i++;
  }
  
  Serial.print("sensor1 = " );                       
  Serial.print(var1);      
  Serial.print("\t sensor2 = ");      
  Serial.println(var2); 
    
delay(100);
}

ma mi da roba parecchio sballata. Se il sensore è a riposo la variazione dovrebbe dare 0, no? ho sbagliato qualcosa di sicuro, ma non mi viene in mente.

Ho fatto sta funzione perchè dato che non mi interessa avere il valore assoluto della distanza, ma mi interessano le variazioni. Ad esempio una variazione brusca del pin 0 vorrebbe dire che il tavolino è finito mentre una variazione brusca del sensore 1 vorrebbe dire che mi sto per scontrare.

Vi faccio vedere su cosa sto provando sto software… È sempre il solito robottino solo in una versione extended :smiley:


sono un bischero, ho messo le operazioni nel ciclo while :S però anche ora che le ho tolte non funziona :S

EDIT

ora funziona ma ho risolto alla grezza ;D

int distInf[]={0,0};
int distSup[]={0,0};
int var1=0;
int var2=0;;

void setup(){
  Serial.begin(9600);
}
void loop(){
 

  distInf[0] = analogRead(0);
  distSup[0] = analogRead(1);
  delay(1);
  distInf[1] = analogRead(0);
  distSup[1] = analogRead(1);

  var1 = distInf[1]-distInf[0];
  var2 = distSup[1]-distSup[0];
  
  Serial.print("var1 = " );                       
  Serial.print(var1);      
  Serial.print(" var2 = ");      
  Serial.println(var2); 
  
 delay(100);
}