projeto escolar

estou a fazer um projeto onde tenho de descobrir o tempo entra uma ponta de um tapete a outra ponta (sao 2 tapetes) mas nao esta a aparecer os valores do tempo no lcd como devia.

Alguem consegue descobrir o erro no programa?

ps: nao posso alterar os pins a que estao ligados os sensores

#include <Wire.h>
#include <LiquidCrystal.h>



LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


  int lcd_key     = 0;
  int adc_key_in  = 0;
  int sensor1 = 2;
  int sensor2 = A5;
  int sensor3 = 3;
  int sensor4 = 13;
  unsigned long time1 = 0;
  unsigned long time2 = 0;
  unsigned long time3 = 0;
  unsigned long time4 = 0;
  


void setup()
  {  
   pinMode(sensor1, INPUT);
   pinMode(sensor2, INPUT);
   pinMode(sensor3, INPUT);
   pinMode(sensor4, INPUT);
   lcd.begin(16, 2);              
   lcd.setCursor(0,0);
   lcd.print ("* Queda Graves *");
   lcd.setCursor(0,1);
   lcd.print (" V1.0      2014 ");
   delay (1500);
  }


void loop ()
  {
  lcd.clear();
  lcd.setCursor (0,0);
  lcd.print ("Tb1           ms");
  lcd.setCursor (0,1);
  lcd.print ("Tb2           ms");
  if (digitalRead(sensor1) == HIGH) {
    time1 = millis ();
    if (analogRead(sensor2) == HIGH) {
      time2 = millis();
      lcd.setCursor (5, 0);
      delay(100);
      lcd.print (time1 - time2); 
      Serial.println(time1 - time2);
      }
    }
 else if (digitalRead(sensor3) == HIGH) {
    time3 = millis();
  if (digitalRead(sensor4) == HIGH) {
    time4 = millis();
    lcd.setCursor (5, 1);
    delay(100);
    lcd.print (time3 - time4);
    Serial.println(time3 - time4);
    }
   }
  }

Tens de detectar um flanco... de low para high. Neste momento estás a medir todo o tempo que os sinais estão em high.

Não entendo porque fazes medições analógicas se o pino estiver a HIGH, mas lá saberás melhor que eu.

tambem nao sei bem porque o pin analogico, mas foi o professor que fez a montagem e eu nao posso alterar

mas como e que corrijo isso e ponho de Low para HIGH podes por ai um exemplo mesmo nao sendo com o meu programa?

Eu não estou a dizer que tens de alterar a montagem... apenas que convinha explicares-me o código.

Não sei o que o analogRead faz num pino digital, mas naquele caso está a ser mal usado. Troca os analogRead por digitalRead.

Olhando um pouco no fórum... porque motivo é que não continuaste a tua dúvida neste post:

http://forum.arduino.cc/index.php?topic=228734.0

Porque é que não respondeste à minha questão nesse post??