#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16,2);

#define nada 262
#define nada2 330
int led = 13;
int trig = 9;           // membuat varibel trig yang di set ke-pin 3
int echo = 8;
int buzzer = 12;           // membuat variabel echo yang di set ke-pin 2
long durasi, jarak;     // membuat variabel durasi dan jarak

void setup() {
  pinMode(buzzer, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(trig, OUTPUT);    // set pin trig menjadi OUTPUT
  pinMode(echo, INPUT);     // set pin echo menjadi INPUT
  Serial.begin(9600);       // digunakan untuk komunikasi Serial dengan komputer
  lcd.init();
  lcd.backlight();
}


void loop() {
  lcd.setCursor(0,0);
  lcd.print("Jarak :");
  lcd.setCursor(0,1);
  lcd.print("Ket   :");
  lcd.setCursor(7,0);
  lcd.print(jarak);
  lcd.setCursor(10,0);
  lcd.print("cm");

  // program dibawah ini agar trigger memancarakan suara ultrasonic
  digitalWrite(trig, LOW);
  delayMicroseconds(8);
  digitalWrite(trig, HIGH);
  delayMicroseconds(8);
  digitalWrite(trig, LOW);
  delayMicroseconds(8);

  durasi = pulseIn(echo, HIGH); // menerima suara ultrasonic
  jarak = (durasi / 2) / 29.1;  // mengubah durasi menjadi jarak (cm)
  Serial.println(jarak);        // menampilkan jarak pada Serial Monitor
if (jarak <100){
  digitalWrite(led, HIGH);
  tone(buzzer, nada);
  delay(100);
  tone(buzzer, nada2);
  delay(100);
lcd.setCursor(7,1);
lcd.print("Dekat");
}
else {
  digitalWrite(led, LOW);
  noTone(buzzer);
  lcd.setCursor(7,1);
  lcd.print("Jauh ");
}
}