#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
int R1 = 2;
int R2 = 3;
int R3 = 4;
int R4 = 5;
int i = 0;
int sec = 0;
#define DITEKAN LOW
#define BOUNCE 100
/* LCD setup */
LiquidCrystal_I2C lcd_1 = LiquidCrystal_I2C(0x27, 16, 2);
/* Keypad setup */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {12, 11, 10, 9};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
Keypad customKeypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
void setup() {
lcd_1.begin(16, 2);
Serial.begin(9600);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(R4, OUTPUT);
}
void loop() {
char customKey = customKeypad.getKey();
switch(customKey){
case '1':
isi();
break;
case '2':
buang();
break;
case '3':
manual();
break;
}
}
void isi() {
lcd_1.setCursor(0, 0);
lcd_1.print(" MENGISI AIR ");
lcd_1.setCursor(0, 1);
lcd_1.print(" ");
for( int i=1; i<=20; i++ ) {
lcd_1.setCursor(0, 1);
lcd_1.print("480 Detik [ ] ");
lcd_1.setCursor(12, 1);
lcd_1.print(i);
digitalWrite(R1, HIGH);
delay(1000);
}
delay(1000);
digitalWrite(R1, LOW);
lcd_1.setCursor(0, 0);
lcd_1.print(" SELESAI ");
delay(5000);
lcd_1.clear();
}
void buang() {
lcd_1.setCursor(0, 0);
lcd_1.print(" BUANG AIR ");
lcd_1.setCursor(0, 1);
lcd_1.print(" ");
for( int i=1; i<=20; i++ ) {
lcd_1.setCursor(0, 1);
lcd_1.print("480 Detik [ ] ");
lcd_1.setCursor(12, 1);
lcd_1.print(i);
digitalWrite(R2, HIGH);
delay(1000);
}
delay(1000);
digitalWrite(R2, LOW);
lcd_1.setCursor(0, 0);
lcd_1.print(" SELESAI ");
delay(5000);
lcd_1.clear();
}
void manual(){
lcd_1.setCursor(0, 0);
lcd_1.print(" SEDANG MENCUCI ");
lcd_1.setCursor(0, 1);
lcd_1.print("30 Cycle [ ]");
for ( int i=1; i<=5; i++ ) {
lcd_1.setCursor(12, 1);
lcd_1.print(i);
digitalWrite(R3, HIGH);
delay(2000);
digitalWrite(R3, LOW);
delay(7000);
digitalWrite(R4, HIGH);
delay(2000);
digitalWrite(R4, LOW);
delay(7000);
}
lcd_1.clear();
lcd_1.setCursor(0, 0);
lcd_1.print(" SELESAI ");
lcd_1.setCursor(0, 1);
lcd_1.print(" ");
delay(5000);
lcd_1.clear();
}