#include<LiquidCrystal.h>
#include<Servo.h>
Servo myservo;
const int rs=12,en=11,d4=5,d5=4,d6=3,d7=2;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
int button1=7,button2=8;
int time=10000;
unsigned long start,finished,total;
int buzzer = 9;
int k=0;
int led=10;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
myservo.attach(6);
lcd.begin(16,2);
pinMode(button1 , INPUT);
pinMode(button2 , INPUT);
pinMode(buzzer , OUTPUT);
pinMode(led , OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
// lcd.clear();
if(digitalRead(button1)==1){
// Serial.print("Start: ");
start = millis();
lcd.setCursor(0,0);
lcd.print("BIKE DETECTED..");
lcd.setCursor(0,1);
lcd.print("THROUGH SENSOR1");
// delay(1500);
// lcd.clear();
if(k==0){
digitalWrite(buzzer , HIGH);
k=1;
tone(9,1000);
delay(100);
digitalWrite(buzzer , LOW);
noTone(9);
}
while(true){
if(digitalRead(button2)==1){
// Serial.print("Finished: ");
finished = millis();
break;
}
}
total=(finished-start);
if(total>time){
lcd.clear();
k=0;
myservo.write(180);
lcd.setCursor(0,0);
lcd.print("YOU CAN GO..");
lcd.setCursor(0,1);
lcd.print("TIME:");
lcd.setCursor(5,1);
lcd.print(total/1000);
digitalWrite(buzzer , LOW);
noTone(9);
digitalWrite(led , 1);
delay(2000);
digitalWrite(led , 0);
}
else{
k=0;
lcd.clear();
myservo.write(90);
lcd.setCursor(0,0);
lcd.print("YOU BREAKED RULE");
lcd.setCursor(0,1);
lcd.print("TIME:");
lcd.setCursor(5,1);
lcd.print(total/1000);
// delay(1500);
// lcd.clear();
digitalWrite(buzzer , HIGH);
tone(9,1000);
delay(3000);
digitalWrite(buzzer , LOW);
noTone(9);
}
}else{
lcd.setCursor(0,0);
lcd.print("NO BIKE DETECTED");
}
delay(1000);
lcd.clear();
myservo.write(90);
}