#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
Servo myservo;
LiquidCrystal_I2C LCD(0x27,16,2);
const int trig_Pin=2;
const int echo_Pin=4;
long duration;
int distance;
#define RLED 12
#define GLED 5
void setup()
{
Serial.begin(9600);
pinMode(trig_Pin, OUTPUT);
pinMode(echo_Pin, INPUT);
pinMode(RLED,OUTPUT);
pinMode(GLED,OUTPUT);
myservo.attach(15);
LCD.init();
LCD.backlight();
LCD.setCursor(0,0);
LCD.print("ACCIDENT DETECTION");
LCD.setCursor(0,1);
LCD.print("ROBOTICS AND AUTOM");
delay(5000);
LCD.clear();
}
void loop()
{
digitalWrite(trig_Pin, LOW);
delayMicroseconds(2);
digitalWrite(trig_Pin, HIGH);
delayMicroseconds(10);
digitalWrite(trig_Pin, LOW);
duration=pulseIn(echo_Pin,HIGH);
distance=duration*0.034/2;
Serial.println(distance);
LCD.setCursor(0,0);
LCD.print("ULTRA:");
LCD.setCursor(6,0);
LCD.print(distance);
if(distance < 40)
{
Serial.println("Break");
myservo.write(90);
digitalWrite(RLED, HIGH);
digitalWrite(GLED, LOW);
LCD.setCursor(0,1);
LCD.print("st:");
LCD.setCursor(3,1);
LCD.print("alert_breacks");
}
else
{
Serial.println("safe");
myservo.write(0);
digitalWrite(RLED, LOW);
digitalWrite(GLED, HIGH);
LCD.setCursor(0,1);
LCD.print("st:");
LCD.setCursor(3,1);
LCD.print("safe_nobreacks");
}
}