#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define echoPin 2
#define trigPin 3
#define buzzer 7
#define buzz 6
#define green 8
#define orange 9
#define red 10
#define blue 11
long duration;
int distance;
void setup()
{
lcd.init();
lcd.backlight();
pinMode(trigPin,OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(orange, OUTPUT);
pinMode(green, OUTPUT);
Serial.begin(9600);
Serial.println("Distance measurement using Arduino Uno");
delay(500);
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.0344 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance <=200 && distance >= 100){
tone(buzz, 800);
delay(1500);
noTone(buzz);
delay(1500);
digitalWrite(orange, HIGH);
}else{
noTone(buzz);
digitalWrite(orange, LOW);
}
if (distance < 100){
digitalWrite(blue,HIGH);
digitalWrite(blue, LOW);
delay(50);
digitalWrite(red,HIGH);
digitalWrite(red, LOW);
delay(50);
tone(buzzer, 100);
delay(100);
noTone(buzzer);
delay(100);
}else{
digitalWrite(blue,LOW);
digitalWrite(red, LOW);
noTone(buzzer);
}
if (distance > 200){
digitalWrite(green, HIGH);
}else{
digitalWrite(green,LOW);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance:");
lcd.setCursor(0,1);
lcd.print(distance);
lcd.setCursor(4, 1);
lcd.print("cm");
delay(100);
}