#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo siservo;
#define ECHO_PIN 6
#define TRIG_PIN 5
int sudut = 0;
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
siservo.attach(3);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
float jarak_cm()
{
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
// put your main code here, to run repeatedly:
float cm = jarak_cm();
if ( cm <= 100 )
{sudut = 0;
siservo.write(sudut);
digitalWrite(4, HIGH);
tone(7, 500);
delay(1000);
{sudut = 180;
siservo.write(sudut);
digitalWrite(4, LOW);
noTone(7);
lcd.setCursor(0,0);
lcd.print("AWAS BANJIR!");
delay(1000);
}}
else
if(cm <= 200)
{sudut = 0;
siservo.write(sudut);
lcd.setCursor(0,0);
lcd.print("SAMPAH PENUH");
delay(1000);
}
else
{sudut = 180;
siservo.write(sudut);
lcd.setCursor(0,0);
lcd.print("SAMPAH AMAN!");
delay(1000);
}
}