#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
int timer1;
int timer2;
int timer3;
int timer4;
float Timeo;
float Timet;
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
int flag4 = 0;
float distance = 2;
float speedo;
float speedo2;
float speedt;
int ir_s1 = A1;
int ir_s2 = A2;
int ir_s3 = 3;
int ir_s4 = 4;
void setup(){
lcd.init();
lcd.backlight();
pinMode(ir_s1, INPUT);
pinMode(ir_s2, INPUT);
pinMode(ir_s3, INPUT);
pinMode(ir_s4, INPUT);
lcd.setCursor(0,0);
lcd.print(" GLBB ");
lcd.setCursor(0,1);
lcd.print("SMA Queen");
delay(2000);
lcd.clear();
}
void loop() {
if(digitalRead (ir_s1) == LOW && flag1==0){timer1 = millis(); flag1=1;}
if(digitalRead (ir_s2) == LOW && flag2==0){timer2 = millis(); flag2=1;}
if(digitalRead (ir_s3) == LOW && flag3==0){timer3 = millis(); flag3=1;}
if(digitalRead (ir_s4) == LOW && flag4==0){timer4 = millis(); flag4=1;}
if (flag1==1 && flag2==1){
if(timer1 > timer2){Timeo = timer1 - timer2;}
else if(timer2 > timer1){Timeo = timer2 - timer1;}
Timeo=Timeo/1000;//convert millisecond to second
speedo=(distance/Timeo);//v=d/t
speedo2=speedo+0;
}
if (flag3==1 && flag4==1){
if(timer3 > timer4){Timet = timer3 - timer4;}
else if(timer4 > timer3){Timet = timer4 - timer3;}
Timet=Timet/1000;//convert millisecond to second
speedt=(distance/Timet);//v=d/t
}
if(speedo==0 && speedt==0){
lcd.setCursor(0, 0);
}
else{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Speedo:");
lcd.print(speedo2);
lcd.print("m/s ");
lcd.setCursor(0, 1);
lcd.print("Speedt:");
lcd.print(speedt);
lcd.print("m/s ");
speedo = 0;
speedt = 0;
flag1 = 0;
flag2 = 0;
flag3 = 0;
flag4 = 0;
}
}