#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte push_menu = 12;
byte push_enter = 11;
byte push_up = 10;
byte push_down = 9;
byte LED = 13;
int count = 0;
int count_time = 0;
int hour = 0;
int minute = 0;
int bounce = 100;
boolean condition = LOW;
boolean manual = LOW;
boolean otomatis = LOW;
boolean time = LOW;
void setup() {
Serial.begin(9600);
pinMode(push_menu, INPUT_PULLUP);
pinMode(push_enter, INPUT_PULLUP);
pinMode(push_up, INPUT_PULLUP);
pinMode(push_down, INPUT_PULLUP);
pinMode(LED, OUTPUT);
//Tampilan Awal LCD
lcd.begin(16,2);
lcd.init();
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Universitas");
lcd.setCursor(0,1);
lcd.print("Musamus Merauke");
delay(3000);
}
void loop() {
if(digitalRead(push_menu) == LOW){
count++;
Serial.println(count);
delay(bounce);
}
if(count==0){
lcd.clear();
lcd.setCursor(6,0);
lcd.print("Suhu");
lcd.setCursor(3,1);
lcd.print("Kelembapan");
delay(500);
}
if(count==1){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("=>Manual");
lcd.setCursor(0,1);
lcd.print(" Auto");
lcd.setCursor(10,0);
lcd.print(" Time");
manual=LOW;
otomatis=LOW;
time=LOW;
if(digitalRead(push_enter) == LOW){
manual=HIGH;
otomatis=LOW;
time=LOW;
delay(bounce);
}
delay(500);
}
if(count==2){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Manual");
lcd.setCursor(0,1);
lcd.print("=>Auto");
lcd.setCursor(10,0);
lcd.print(" Time");
manual=LOW;
otomatis=LOW;
time=LOW;
if(digitalRead(push_enter) == LOW){
manual=LOW;
otomatis=HIGH;
time=LOW;
delay(bounce);
}
delay(500);
}
if(count==3){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Manual");
lcd.setCursor(0,1);
lcd.print(" Auto");
lcd.setCursor(10,0);
lcd.print("=>Time");
manual=LOW;
otomatis=LOW;
time=LOW;
if(digitalRead(push_enter) == LOW){
manual=LOW;
otomatis=LOW;
time=HIGH;
delay(bounce);
}
delay(500);
}
if(count==4){
count=1;
}
//===============Sisten Manual=================
if(manual == HIGH){
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Mode Manual");
count=0;
delay(1000);
if(digitalRead(push_enter) == LOW){
delay(250);
condition =! condition;
digitalWrite(LED, condition);
}
}
//===============Sisten Otomatis================
if(otomatis == HIGH){
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Mode Otomatis");
Serial.println(hour);
Serial.println(minute);
count=0;
delay(1000);
}
//===============Set Time ======================
while(time == HIGH){
if(digitalRead(push_menu) == LOW){
count_time++;
delay(bounce);
}
if(digitalRead(push_enter) == LOW){
manual=LOW;
otomatis=LOW;
time=LOW;
count=0;
delay(bounce);
}
if(count_time == 0){
lcd.clear();
lcd.setCursor(3,0);
lcd.print("Atur Waktu");
lcd.setCursor(0,1); lcd.print("=> Jam:"); lcd.setCursor(8,1); lcd.print(hour); lcd.setCursor(11,1); lcd.print("WIT");
if((digitalRead(push_up) == LOW)&&(hour<24)){
hour++;
delay(bounce);
}
if((digitalRead(push_down) == LOW)&&(hour>1)){
hour--;
delay(bounce);
}
}
if(count_time == 1){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Lama Penyiraman");
lcd.setCursor(0,1); lcd.print("=> Menit:"); lcd.setCursor(10,1); lcd.print(minute);
if((digitalRead(push_up) == LOW)&&(minute<59)){
minute++;
delay(bounce);
}
if((digitalRead(push_down) == LOW)&&(minute>1)){
minute--;
delay(bounce);
}
}
if(count_time == 2){
count_time=0;
}
delay(500);
}
}