#define IR 3 #define LED 13 #define BOTAO 2 bool parado = true; int n = 0; float tempo = 0; bool inicio = true; float t1, t2; float dx = 3; void setup() { // put your setup code here, to run once: pinMode(IR,INPUT); pinMode(BOTAO,INPUT); attachInterrupt(0, paraTudo, RISING); attachInterrupt(1, passouNaFrente, CHANGE); Serial.begin(115200); } void passouNaFrente() { inicio = !inicio; if(parado) { parado = false; tempo = millis(); n = 0; inicio = true; } if(inicio) t1 = millis(); else { t2 = millis(); float v = 1000*dx/(t2-t1); float t = (t2+t1)/2; Serial.print(n); Serial.print(" "); Serial.print((t-tempo)/1000,4); Serial.print(" "); Serial.println(v,4); n++; } } void paraTudo() { parado = true; Serial.println(""); Serial.println("Estou parado novamente."); Serial.println("Esperando alguma coisa passar na minha frente"); } void loop() { if(digitalRead(IR)) digitalWrite(LED,HIGH); else digitalWrite(LED,LOW); }