#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
#define Led1 2
#define Led2 3
#define Led3 4
#define Led4 5
#define Led5 6
#define trigPin1 7
#define echoPin1 8
#define trigPin2 9
#define echoPin2 10
#define analog_ldr1 A0
#define analog_ldr2 A1
boolean kondisi1 = false;
boolean kondisi2 = false;
void setup() {
// put your setup code here, to run once:
pinMode(Led1, OUTPUT);
pinMode(Led2, OUTPUT);
pinMode(Led3, OUTPUT);
pinMode(Led4, OUTPUT);
pinMode(Led5, OUTPUT);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
lampu_mati();
}
void loop() {
// put your main code here, to run repeatedly:
float ultrasonik1 = ultrasonik(trigPin1, echoPin1);
float ultrasonik2 = ultrasonik(trigPin2, echoPin2);
int cahaya1 = kondisi_cahaya(analog_ldr1);
int cahaya2 = kondisi_cahaya(analog_ldr2);
if (cahaya1 >= 900 && cahaya2 >= 900){
if(ultrasonik1 < 20){
lampu_nyala1();
delay(5000);
lampu_mati1();
}
if(iltrasonik2 < 20)
lampu_nyala2();
delay(5000);
lampu_mati2();
}
else{
lampu_mati();
}
}
int kondisi_cahaya(int analog_ldr){
return analogRead(analog_ldr);
}
float ultrasonik(int trigPin, int echoPin){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float jarak_baca = duration /58.0;
return jarak_baca;
}
void lampu_mati(){
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
digitalWrite(Led5, LOW);
}
void lampu_nyala1(){
digitalWrite(Led1, HIGH);
delay(2000);
digitalWrite(Led2, HIGH);
delay(2000);
digitalWrite(Led3, HIGH);
delay(2000);
digitalWrite(Led4, HIGH);
delay(2000);
digitalWrite(Led5, HIGH);
delay(2000);
}
void lampu_mati1(){
digitalWrite(Led1, LOW);
delay(2000);
digitalWrite(Led2, LOW);
delay(2000);
digitalWrite(Led3, LOW);
delay(2000);
digitalWrite(Led4, LOW);
delay(2000);
digitalWrite(Led5, LOW);
delay(2000);
}
void lampu_nyala2(){
digitalWrite(Led5, HIGH);
delay(2000);
digitalWrite(Led4, HIGH);
delay(2000);
digitalWrite(Led3, HIGH);
delay(2000);
digitalWrite(Led2, HIGH);
delay(2000);
digitalWrite(Led1, HIGH);
delay(2000);
}
void lampu_mati2(){
digitalWrite(Led5, LOW);
delay(2000);
digitalWrite(Led4, LOW);
delay(2000);
digitalWrite(Led3, LOW);
delay(2000);
digitalWrite(Led2, LOW);
delay(2000);
digitalWrite(Led1, LOW);
delay(2000);
}