//https://create.arduino.cc/projecthub/Junezriyaz/distance-measurement-using-arduino-ultrasonic-sensor-409169
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
const int trigPin = 3;
const int echoPin = 2;
const int buzzPin = 8;
const int LEDpin = 4;
long duration;
int distanceValue;
//byte Bell[] = {
//B00100,
//B01110,
//B01110,
//B01110,
//B11111,
//B00000,
//B00100,
//B00000
//};
void setup() {
lcd.init();
lcd.begin(16, 2); // Initializes the interface to the LCD display
//lcd.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzPin, OUTPUT);
pinMode(LEDpin, OUTPUT);
//lcd.createChar(1, Bell);
//Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceValue = (duration * 0.0340) / 2;//IN CM
//distanceValue = (duration * 0.01330) / 2; //IN INCH
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance: ");
//Serial.println(distanceValue);
lcd.print(distanceValue+1);//1 is used for bias correction
lcd.print(" cm");
lcd.noBacklight();
//lcd.blink();
//delay(10);
if (distanceValue <= 50 && distanceValue >= 0) {
lcd.backlight();
lcd.setCursor(0, 1);
lcd.print("....Warnning....");
//lcd.createChar(1, Bell);
//lcd.blink();
digitalWrite(buzzPin, HIGH);
digitalWrite(LEDpin, HIGH);
delay(600);
digitalWrite(buzzPin, LOW);
digitalWrite(LEDpin, LOW);
delay(600);
} else {
digitalWrite(buzzPin, LOW);
digitalWrite(LEDpin, LOW);
lcd.noBacklight();
lcd.setCursor(0, 1);
for (int thisChar = 0; thisChar < 14; thisChar++) {
lcd.print(".");
lcd.blink();
delay(20);
}
}
delay(60);
}