#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int lampuKuning = 11;
int lampuMerah = 12;
int lampuHijau = 10;
long Jarak (int triggerPin, int echoPin) {
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
int jaraknya = 0; // reset jarak ke 0
jaraknya = (0.03446 * Jarak(7,8))/2;
Serial.print(jaraknya);
Serial.println(" CM");
lcd.clear();
if (jaraknya > 15) {
digitalWrite(lampuHijau, HIGH);
digitalWrite(lampuKuning, LOW);
digitalWrite(lampuMerah, LOW);
lcd.setCursor(0,0);
lcd.print(jaraknya);
lcd.print(" CM");
lcd.setCursor(0,1);
lcd.print("Jarak Aman");
}
else if(jaraknya >= 5 && jaraknya < 15) {
digitalWrite(lampuKuning, HIGH);
digitalWrite(lampuMerah, LOW);
digitalWrite(lampuHijau, LOW);
lcd.setCursor(0,0);
lcd.print(jaraknya);
lcd.print(" CM");
lcd.setCursor(0,1);
lcd.print("Jarak Hati-Hati");
}
else if(jaraknya < 5) {
digitalWrite(lampuMerah, HIGH);
digitalWrite(lampuKuning, LOW);
digitalWrite(lampuHijau, LOW);
lcd.setCursor(0,0);
lcd.print(jaraknya);
lcd.print(" CM");
lcd.setCursor(0,1);
lcd.print("Jarak Bahaya");
}
delay(200);
}