// C++ code
//
#include <LiquidCrystal.h>
const int RS=12, EM=11, D4=10, D5=9, D6=8, D7=7;
LiquidCrystal lcd(RS, EM, D4, D5, D6, D7);
int trig = 3;
int echo = 2;
int lecture_echo;
int dist;
int cars = 6;
void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
lcd.begin(16,2);
pinMode(13, OUTPUT);
pinMode(4 , OUTPUT);
pinMode(1, OUTPUT);
pinMode(5, INPUT);
pinMode(6,INPUT);
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Cars : ");
lcd.print(cars);
dist = getdistance();
lcd.setCursor(12,1);
lcd.print(dist);
if(dist < 100){
digitalWrite(13, HIGH);
if (cars < 10){
digitalWrite(4, HIGH);
digitalWrite(1, LOW);
if(digitalRead(5) == HIGH){
delay(5000);
cars = cars + 1;
}
}else{
digitalWrite(4, LOW);
digitalWrite(1, HIGH);
}
}else{
digitalWrite(13, LOW);
}
if(digitalRead(6) == HIGH){
delay(5000);
cars = cars -1;
}
}
int getdistance(){
int distance;
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
distance = lecture_echo / 58;
return distance;
}