// SENSOR KETINGGIAN AIR atau WADUK
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// LED and sensor pins
const int led1 = 1;
const int led2 = 2;
const int led3 = 3;
const int trig = 4;
const int echo = 5;
long duration, distance;
void setup() {
lcd.init();
lcd.backlight();
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration / 2) * 0.034;
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("PENGUKURAN");
lcd.setCursor(9, 1);
lcd.print(distance);
lcd.print(" CM");
if (distance >= 100 && distance <= 200) {
lcd.setCursor(2, 1);
lcd.print("SEDANG");
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
} else if (distance > 200 && distance <= 300) {
lcd.setCursor(2, 1);
lcd.print("SIAGA");
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
} else if (distance > 300) {
lcd.setCursor(2, 1);
lcd.print("BAHAYA");
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
}
delay(1000); // Delay
}