#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // Address 0x27, 16 columns and 4 rows
String input = "";
int rpm = 0;
unsigned long int waktu = 0;
byte state = 0;
#define BUTTON_UP 19
#define BUTTON_DOWN 18
#define BUTTON_OK 5
#define BUTTON_RESET 4
double suhu, lembap;
int detik = 0, setDetik = 0, set_rpm = 0, set_time = 0, lamaTekanUp = 0, lamaTekanDown = 0, detikSuhu = 0, stateSuhu = 1, detikSuhuHidup = 0, value = 0, stateValue = 0;
long millisSebelum = 0, millisSekarang = 0, millisSebelumSuhu = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(BUTTON_UP, INPUT_PULLUP);
pinMode(BUTTON_DOWN, INPUT_PULLUP);
pinMode(BUTTON_OK, INPUT_PULLUP);
pinMode(BUTTON_RESET, INPUT_PULLUP);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("INPUT VALUE TEST");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SET VALUE");
lcd.setCursor(0, 1);
lcd.print("RPM : ");
lcd.setCursor(13, 1);
lcd.print(" rpm");
lcd.setCursor(0, 2);
lcd.print("Waktu : ");
lcd.setCursor(13, 2);
lcd.print(" min");
lcd.setCursor(0,3);
lcd.print("#:OK");
lcd.setCursor(15,3);
lcd.print("D:DEL");
}
void loop() {
counters();
// rpm = inputValue("RPM ", 0, 1);
// waktu = inputValue("Waktu", 0, 2);
// lcd.setCursor(0, 1);
// lcd.print(String("RPM : ") + rpm);
// lcd.setCursor(0, 2);
// lcd.print(String("Waktu : " + waktu));
// lcd.setCursor(0, 0);
// lcd.print("RUNNING ");
// Serial.println(String("RPM : ") + rpm);
// Serial.println(String("Waktu : ") + waktu);
}
// int inputValue(String variabelName, int positionX, int positionY) {
// state = 0;
// input = "";
// do{
// lcd.setCursor(19, positionY);
// lcd.print("<");
// char key = keypad.waitForKey();
// if (key != NO_KEY){
// if(key == 'D' && input.length() != 0){
// input.remove(input.length()-1);
// int eraserPosition = 8+input.length();
// lcd.setCursor(eraserPosition,positionY);
// lcd.print(" ");
// }else if (key =='#'){
// state = 1;
// }else if (key != 'A' && key != 'B' && key != 'C' && key != 'D' && key != '#' && key != '*' ) {
// input += key;
// }
// lcd.setCursor(positionX, positionY);
// lcd.print(variabelName+ String(" : "));
// lcd.setCursor(8, positionY);
// lcd.print(input);
// Serial.println(variabelName+ String(" : ")+input);
// }
// }while(state == 0);
// lcd.setCursor(19, positionY);
// lcd.print(" ");
// return input.toInt();
// }
int counters(){
while(digitalRead(BUTTON_OK == 1)){
if (digitalRead(BUTTON_UP) == 0) {
millisSekarang = millis();
if (millisSekarang - millisSebelum > 1000 && lamaTekanUp < 3 && value >= 0) {
lamaTekanUp += 1;
value += 1;
detik += 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 100 && (lamaTekanUp >= 3 && lamaTekanUp < 10) && value >= 0) {
lamaTekanUp += 1;
detik += 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 10 && lamaTekanUp >= 10 && value >= 0) {
lamaTekanUp += 1;
value +=1;
detik += 1;
millisSebelum = millisSekarang;
}
//setDetik = 0;
}
if (digitalRead(BUTTON_DOWN) == 0) {
millisSekarang = millis();
if(value >= 0){
}
if (millisSekarang - millisSebelum > 1000 && lamaTekanDown < 3 && value > 0) {
lamaTekanDown += 1;
value -=1;
detik -= 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 100 && (lamaTekanDown >= 3 && lamaTekanDown < 10) && value > 0) {
lamaTekanDown += 1;
value -= 1;
detik -= 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 10 && lamaTekanDown >= 10 && value > 0) {
lamaTekanDown += 1;
value -= 1;
detik -= 1;
millisSebelum = millisSekarang;
}
//setDetik = 0;
}
if (digitalRead(BUTTON_UP) == 1) {
lamaTekanUp = 0;
}
if (digitalRead(BUTTON_DOWN) == 1) {
lamaTekanDown = 0;
}
Serial.println(String("Value") + value);
}
Serial.println(value + 1);
return value;
}
void counter(){
if (digitalRead(BUTTON_UP) == 0) {
millisSekarang = millis();
if (millisSekarang - millisSebelum > 1000 && lamaTekanUp < 3 && value >= 0) {
lamaTekanUp += 1;
value += 1;
detik += 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 100 && (lamaTekanUp >= 3 && lamaTekanUp < 10) && value >= 0) {
lamaTekanUp += 1;
detik += 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 10 && lamaTekanUp >= 10 && value >= 0) {
lamaTekanUp += 1;
value +=1;
detik += 1;
millisSebelum = millisSekarang;
}
//setDetik = 0;
}
if (digitalRead(BUTTON_DOWN) == 0) {
millisSekarang = millis();
if(value >= 0){
}
if (millisSekarang - millisSebelum > 1000 && lamaTekanDown < 3 && value > 0) {
lamaTekanDown += 1;
value -=1;
detik -= 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 100 && (lamaTekanDown >= 3 && lamaTekanDown < 10) && value > 0) {
lamaTekanDown += 1;
value -= 1;
detik -= 1;
millisSebelum = millisSekarang;
}
if (millisSekarang - millisSebelum > 10 && lamaTekanDown >= 10 && value > 0) {
lamaTekanDown += 1;
value -= 1;
detik -= 1;
millisSebelum = millisSekarang;
}
//setDetik = 0;
}
if (digitalRead(BUTTON_UP) == 1) {
lamaTekanUp = 0;
}
if (digitalRead(BUTTON_DOWN) == 1) {
lamaTekanDown = 0;
}
// if(digitalRead(BUTTON_RESET) ==0) {
// resetFunc();
// }
// if (digitalRead(BUTTON_OK) == 0) {
// switch(stateValue){
// case 0:
// setSuhu = value;
// stateValue = 1;
// break;
// case 1:
// setKelembapan = value;
// stateValue = 2;
// break;
// }
// lcd.clear();
// lcd.setCursor(6, 1);
// lcd.print((String)"T:" + setSuhu + " " );
// lcd.setCursor(11, 1);
// lcd.print((String)"K:" + setKelembapan + " " );
// delay(2000);
// value = 0;
// detik = 0;
// }
}