#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigPin = 6;
const int echoPin = 7;
const int buzzer = 8;
long duration;
int jarakCm, jarakInch;
void setup() {
lcd.begin(12,2);
lcd.backlight(); // Optional: to turn on the backlight
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
jarakCm = duration * 0.034 / 2;
jarakInch = duration * 0.0133 / 2;
lcd.setCursor(0, 0);
lcd.print("Jarak: ");
lcd.print(jarakCm);
lcd.print(" cm ");
lcd.setCursor(0, 1);
lcd.print("Jarak: ");
lcd.print(jarakInch);
lcd.print(" inch ");
delay(500); // To slow down the display updates
if (jarakCm <= 12) {
tone(buzzer, 1030);
delay(400);
noTone(buzzer);
delay(100);
}
}