#include<LiquidCrystal.h>
const int rs=12,en=11,d4=5,d5=4,d6=3,d7=2,max=200,min=50;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
int trigPin=8;
int echoPin=9;
long duration;
int distance[5];
int buzzer=6;
int r=A0 , g=A1 , b=A2;
int avg;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
lcd.begin(16,2);
pinMode(trigPin , OUTPUT);
pinMode(echoPin , INPUT);
pinMode(buzzer , OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
lcd.clear();
// int value=0;
for(int i=0;i<5;i++){
digitalWrite(trigPin , LOW);
delayMicroseconds(2);
digitalWrite(trigPin , HIGH);
delayMicroseconds(10);
digitalWrite(trigPin , LOW);
duration = pulseIn(echoPin , HIGH);
distance[i] = duration * 0.034/2;
// Serial.println(distance);
// value = value + distance;
}
// Serial.println(value);
// value = value / 5;
avg = (distance[0]+distance[1]+distance[2]+distance[3]+distance[4])/5;
if(avg<max && avg>min){
lcd.setCursor(0,0);
lcd.print("OPSTACLE AHEAD..!");
lcd.setCursor(0,1);
lcd.print("AVG DIST:");
lcd.setCursor(9,1);
lcd.print(avg);
digitalWrite(buzzer , LOW);
noTone(6);
analogWrite(g,0);
analogWrite(r,0);
analogWrite(b,255);
}
else if(avg>max){
lcd.setCursor(0,0);
lcd.print("FREE TO MOVE..");
lcd.setCursor(0,1);
lcd.print("AVG DIST:");
lcd.setCursor(9,1);
lcd.print(avg);
digitalWrite(buzzer , LOW);
noTone(6);
analogWrite(g,255);
analogWrite(r,0);
analogWrite(b,0);
}
else if(avg>0 && avg<=50){
lcd.setCursor(0,0);
lcd.print("DANGER..!!");
lcd.setCursor(0,1);
lcd.print("AVG DIST:");
lcd.setCursor(9,1);
lcd.print(avg);
digitalWrite(buzzer , HIGH);
tone(6,1000);
analogWrite(g,0);
analogWrite(r,255);
analogWrite(b,0);
}
delay(15000);
}