#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
const int triggerPin = 3;
const int echoPin = 2;
#define buzzerPin 11
const int LED1 = 8;
const int LED2 = 9;
const int LED3 = 10;
int frekuensi = 250;
long durasi;
int jarak;
void setup() {
lcd.backlight();
lcd.init();
lcd.setCursor(0, 0);
lcd.print("PROGRAM MULAI");
lcd.clear();
Serial.begin(9600);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}
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(LED2, HIGH);
digitalWrite(LED1, 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("WASPADA");
}
else if(jarak < 20){
digitalWrite(LED3, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED1, 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("BERBAHAYA");
tone (buzzerPin, frekuensi);
delay(250);
noTone(buzzerPin);
delay(250);
}
}