#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int trig = 13;
const int echo = 12;
const int buzzer = 14;
float ss = 0.034;
float dist_cm;
long durn;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
lcd.init();
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
durn = pulseIn(echo, HIGH);
dist_cm = durn*ss/2;
lcd.backlight();
if(dist_cm <= 400 && dist_cm > 300) {
lcd.setCursor(0,0);
lcd.print("Jarak = Jauh");
lcd.setCursor(1,1);
lcd.print(dist_cm);
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
} else if (dist_cm <= 300 && dist_cm > 200) {
lcd.setCursor(0,0);
lcd.print("Jarak = Menengah");
lcd.setCursor(1,1);
lcd.print(dist_cm);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
} else {
lcd.setCursor(0,0);
lcd.print("Jarak = Dekat");
lcd.setCursor(1,1);
lcd.print(dist_cm);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
}
Serial.print("Jarak = ");
Serial.println(dist_cm);
delay(100);
}