#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C layar(0x27, 16, 2);
const int pinTrigger = 7;
const int pinEcho = 8;
const int lampu1 = 4;
const int lampu2 = 5;
const int lampu3 = 6;
long waktu;
int distance;
void setup() {
pinMode(pinTrigger, OUTPUT);
pinMode(pinEcho, INPUT);
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
pinMode(lampu3, OUTPUT);
layar.begin(16, 2);
layar.home();
layar.print("Jarak sebesar :");
delay(10);
Serial.begin(9600);
}
void loop() {
digitalWrite(pinTrigger, LOW);
delayMicroseconds(2);
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrigger, LOW);
waktu = pulseIn(pinEcho, HIGH);
distance = waktu * 0.0344 / 2;
layar.setCursor(0, 1);
layar.print(distance);
layar.print(" ");
layar.setCursor(3, 1);
layar.print("cm");
delay(100);
if (distance > 15) {
Serial.println("Jarak lebih dari 15 cm");
digitalWrite(lampu1, LOW);
digitalWrite(lampu2, LOW);
digitalWrite(lampu3, HIGH);
} else if (distance <= 15 && distance >= 5) {
Serial.println("Jarak berada di antara 5 cm hingga 15 cm");
digitalWrite(lampu1, LOW);
digitalWrite(lampu2, HIGH);
digitalWrite(lampu3, LOW);
} else if (distance < 5) {
Serial.println("Jarak kurang dari 5 cm");
digitalWrite(lampu1, HIGH);
digitalWrite(lampu2, LOW);
digitalWrite(lampu3, LOW);
}
}