#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;
const int buzz = 7;
long durasi;
float jarak;
void setup() {
pinMode(triggerPin, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(echoPin, INPUT);
lcd.backlight();
lcd.init();
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 /100;
if(jarak < 1){
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(buzz, HIGH);
tone(buzz, 850);
delay(250);
noTone(buzz);
delay(250);
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("KET: BAHAYA!!! ");
}else
if(jarak <= 2 && jarak >=1 ){
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
tone(buzz,850);
delay(1000);
noTone(buzz);
delay(1000);
lcd.setCursor(0, 0);
lcd.println("JARAK: ");
lcd.setCursor(7, 0);
lcd.print(jarak);
lcd.setCursor(12, 0);
lcd.print("M ");
lcd.setCursor(0, 1);
lcd.print("KET: !WASPADA! ");
}else
if(jarak > 2){
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("M ");
lcd.setCursor(0, 1);
lcd.print("KET: AMAN ");
}
}