#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd (0x27,16,2);
Servo servoku;
int led = 13 ;
int bujur = 12;
int t1 =10;
int e1 = 9;
int t2 = 8;
int e2 = 7;
int t3 = 6;
int e3 =5;
void setup() {
servoku.attach(11);
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(t1, OUTPUT);
pinMode(t2, OUTPUT);
pinMode(e1, INPUT);
pinMode(e2, INPUT);
pinMode(bujur, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
// sensor 1
digitalWrite(t1, LOW);
delayMicroseconds(2);
digitalWrite(t1, HIGH);
delayMicroseconds(10);
digitalWrite(t1, LOW);
long waktu,jarak;
waktu = pulseIn(e1,HIGH);
jarak = (waktu*0.034)/2;
Serial.println(jarak);
delay(1000);
// sensor 2
digitalWrite(t2, LOW);
delayMicroseconds(2);
digitalWrite(t2, HIGH);
delayMicroseconds(10);
digitalWrite(t2, LOW);
long waktu2,jarak2;
waktu2 = pulseIn(e2,HIGH);
jarak2 = (waktu2*0.034)/2;
Serial.println(jarak);
delay(1000);
// sensor 3
digitalWrite(t3, LOW);
delayMicroseconds(2);
digitalWrite(t3, HIGH);
delayMicroseconds(10);
digitalWrite(t3, LOW);
long waktu3,jarak3;
waktu2 = pulseIn(e3,HIGH);
jarak2 = (waktu2*0.034)/2;
Serial.println(jarak);
delay(1000);
// kondisi untuk sensor 2
if (jarak2&&jarak3<101){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("bak penuh");
lcd.setCursor(2,1);
lcd.print("buang sampah");
digitalWrite(led, HIGH);
delay(1000);
}
else{
digitalWrite(led, LOW);
lcd.clear();
lcd.setCursor(3,0);
lcd.print("bak kosong ");
lcd.setCursor(5,1);
lcd.print("santai");
}
if(jarak2&&jarak3<200){
tone (bujur,1000);
delay(500);
}
else{
noTone(bujur);
}
// kondisi unttuk sensor 1
if(jarak<101){
servoku.write(90);
}
else{
servoku.write(0);
}
}