#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int triggerPin = 2;
const int echoPin = 3;
const int LED1 = 4;
const int LED2 = 5;
const int LED3 = 6;
#define buzzer 7
int frekuensi = 250;
long durasi;
int jarak;
void setup(){
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(echoPin, INPUT);
lcd.backlight();
lcd.init();
lcd.setCursor(0, 0);
lcd.print("PROGRAM MULAI");
lcd.clear();
}
void loop() {
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
durasi = pulseIn(echoPin, HIGH);
jarak = durasi*0.034/2;
if(jarak > 60){
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
lcd.setCursor(0, 0);
lcd.println("JARAK: ");
lcd.setCursor(7, 0);
lcd.print(jarak);
lcd.setCursor(12, 0);
lcd.print("CM");
lcd.setCursor(0, 1);
lcd.print("HATI HATI");
}else
if(jarak <= 60 && jarak >= 20){
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
lcd.setCursor(0, 0);
lcd.println("JARAK: ");
lcd.setCursor(7, 0);
lcd.print(jarak);
lcd.setCursor(12, 0);
lcd.print("CM");
lcd.setCursor(0, 1);
lcd.print("WASPADA");
}else
if(jarak < 20){
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
lcd.setCursor(0, 0);
lcd.println("JARAK: ");
lcd.setCursor(7, 0);
lcd.print(jarak);
lcd.setCursor(12, 0);
lcd.print("CM");
lcd.setCursor(0, 1);
lcd.print("BERBAHAYA");
tone (buzzer, frekuensi);
delay (1000);
noTone (buzzer);
delay (1000);
}
}