#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define atas A0
#define bawah A1
#define kanan A2
#define kiri A3
#define oke 2
const int Voltage = A0;
int Volt=0;
// int Volt=0;
byte rotasi;
int detik = 10;
int detik2= 10;
int Cycle=5;
int del=2;
int reve, forw, msdetik, forward = 11, reverse = 12, why = 10, delta = 9;
void setup() {
lcd.init();
lcd.backlight();
pinMode(atas, INPUT_PULLUP); digitalWrite(atas, HIGH);
pinMode(bawah, INPUT_PULLUP); digitalWrite(bawah, HIGH);
pinMode(kanan, INPUT_PULLUP); digitalWrite(kanan, HIGH);
pinMode(kiri, INPUT_PULLUP); digitalWrite(kiri, HIGH);
pinMode(oke, INPUT_PULLUP); digitalWrite(oke, HIGH);
pinMode(Volt, INPUT);
pinMode(forward, OUTPUT);
pinMode(reverse, OUTPUT);
pinMode(why, OUTPUT);
pinMode(delta, OUTPUT);
}
void loop() {
menu_Volt:
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
//Bluetooth.println(voltage, DEC);
/// int Volt = analogRead(A0);
// float Voltage = Volt * (5.0 / 1023.0);
lcd.setCursor(0, 0); lcd.print(">Volt :");lcd.print(sensorValue,DEC); //lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(17, 1);lcd.print(detik2);
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("L/R/Auto");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
if (digitalRead(oke) == LOW) {while (digitalRead(oke) == LOW) {} lcd.clear(); goto menu_Volt;}
else if (digitalRead(kanan) == LOW) { while (digitalRead(kanan) == LOW) {}; Volt++;}
else if (digitalRead(kiri) == LOW){while (digitalRead(kiri) == LOW) {};Volt--;}
else if (digitalRead(bawah) == LOW){while (digitalRead(bawah) == LOW) {};goto menu_Waktu;}
goto menu_Volt;
menu_Waktu:
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(">Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("L/R/Auto");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
if (digitalRead(oke) == LOW) {while (digitalRead(oke) == LOW) {} lcd.clear();goto menu_Volt;}
else if (digitalRead(kanan) == LOW) {while (digitalRead(kanan) == LOW) {};detik++;}
else if (digitalRead(kiri) == LOW) { while (digitalRead(kiri) == LOW) {};detik--; }
else if (digitalRead(atas) == LOW) { while (digitalRead(atas) == LOW) {};goto menu_Volt;}
else if (digitalRead(bawah) == LOW) {while (digitalRead(bawah) == LOW) {};goto menu_Direct;}
goto menu_Waktu;
menu_Direct:
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(0, 2); lcd.print(">Direct :"); lcd.print("L/R/Auto");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
if (digitalRead(oke) == LOW) {
while (digitalRead(oke) == LOW) {} lcd.clear();
goto menu_Volt;
}
else if (digitalRead(kanan) == LOW) {
while (digitalRead(kanan) == LOW) {};
detik++;
}
else if (digitalRead(kiri) == LOW) {
while (digitalRead(kiri) == LOW) {};
detik--;
}
else if (digitalRead(atas) == LOW) {
while (digitalRead(atas) == LOW) {};
goto menu_Waktu;
}
else if (digitalRead(bawah) == LOW) {
while (digitalRead(bawah) == LOW) {};
goto menu_Cycle;
}
goto menu_Direct;
menu_Cycle:
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("L/R/Auto");
lcd.setCursor(0, 3); lcd.print(">Cycle :"); lcd.print(Cycle); lcd.print(" x");
if (digitalRead(oke) == LOW) {
while (digitalRead(oke) == LOW) {};
goto menu_Volt;
}
else if (digitalRead(kanan) == LOW) {
while (digitalRead(kanan) == LOW) {};
Cycle++;
}
else if (digitalRead(kiri) == LOW) {
while (digitalRead(kiri) == LOW) {};
Cycle--;
}
else if (digitalRead(atas) == LOW) {
while (digitalRead(atas) == LOW) {};
goto menu_Direct;
}
else if (digitalRead(bawah) == LOW) {
while (digitalRead(bawah) == LOW) {};
goto menu_Run;
}
goto menu_Cycle;
menu_Run:
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(17, 1);lcd.print(detik2);
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("L/R/Auto");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
lcd.setCursor(12, 3); lcd.print(" Start");
if (digitalRead(oke) == LOW) {while (digitalRead(oke) == LOW) {}lcd.clear();goto menu_isi_execution;}
// else if (digitalRead(kanan) == LOW) {while (digitalRead(kanan) == LOW) {};goto menu_Volt;}
//else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){};lcd.clear();goto menu_Cycle;}
else if (digitalRead(atas) == LOW) {while (digitalRead(atas) == LOW) {};lcd.clear();goto menu_Cycle;}
else if (digitalRead(bawah) == LOW) {while (digitalRead(bawah) == LOW) {} lcd.clear();goto menu_Volt;}
goto menu_Run;
/*
menu_awal_rot:
lcd.setCursor(6,0);lcd.print("MENU");
lcd.setCursor(0,1);lcd.print("Rotation <");lcd.print(detik);lcd.setCursor(11,1);lcd.print("Detik");
lcd.setCursor(0,2);lcd.print("Timer");
lcd.setCursor(0,3);lcd.print("Execution");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_rot;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_awal_rot;}
goto menu_awal_rot;
/*
menu_awal_time:
lcd.setCursor(6,0);lcd.print("MENU");
lcd.setCursor(0,1);lcd.print("Rotation");
lcd.setCursor(0,2);lcd.print("Timer <");
lcd.setCursor(0,3);lcd.print("Execution");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_isi_timer_timeleft;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_awal_exe;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_awal_rot;}
goto menu_awal_time;
menu_awal_exe:
lcd.setCursor(6,0);lcd.print("MENU");
lcd.setCursor(0,1);lcd.print("Rotation");
lcd.setCursor(0,2);lcd.print("Timer");
lcd.setCursor(0,3);lcd.print("Execution <");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_isi_execution;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_awal_time;}
goto menu_awal_exe;
menu_isi_rot_for:
lcd.setCursor(3,0);lcd.print("ROTATION");
lcd.setCursor(0,1);lcd.print("Forward <");
lcd.setCursor(0,2);lcd.print("Reverse");
lcd.setCursor(0,3);lcd.print("Auto");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}rotasi=0;lcd.clear();goto menu_awal_rot;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();goto menu_awal_rot;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_rot_rev;}
goto menu_isi_rot_for;
menu_isi_rot_rev:
lcd.setCursor(3,0);lcd.print("ROTATION");
lcd.setCursor(0,1);lcd.print("Forward");
lcd.setCursor(0,2);lcd.print("Reverse <");
lcd.setCursor(0,3);lcd.print("Auto");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}rotasi=1;lcd.clear();goto menu_awal_rot;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();goto menu_awal_rot;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_rot_auto;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_rot_for;}
goto menu_isi_rot_rev;
menu_isi_rot_auto:
lcd.setCursor(3,0);lcd.print("ROTATION");
lcd.setCursor(0,1);lcd.print("Forward");
lcd.setCursor(0,2);lcd.print("Reverse");
lcd.setCursor(0,3);lcd.print("Auto <");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}rotasi=2;lcd.clear();goto menu_awal_rot;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();goto menu_awal_rot;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_rot_rev;}
goto menu_isi_rot_auto;
menu_isi_timer_timeleft:
lcd.setCursor(3,0);lcd.print("TIMER");
lcd.setCursor(0,1);lcd.print("Time Left <");
lcd.setCursor(0,2);lcd.print("Time CW-CCW");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_isi_timer_timeleft_setJam;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw;}
goto menu_isi_timer_timeleft;
menu_isi_timer_timecwccw:
lcd.setCursor(3,0);lcd.print("TIMER");
lcd.setCursor(0,1);lcd.print("Time Left");
lcd.setCursor(0,2);lcd.print("Time CW-CCW <");
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setLoop;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_timer_timeleft;}
goto menu_isi_timer_timecwccw;
menu_isi_timer_timeleft_setJam:
lcd.setCursor(3,0);lcd.print("SET TIME");
lcd.setCursor(0,1);lcd.print(">Jam :"); lcd.print(jam);
lcd.setCursor(0,2);lcd.print(" Menit :"); lcd.print(menit);
lcd.setCursor(0,3);lcd.print(" Detik :"); lcd.print(detik);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();jam++;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();jam--;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_timer_timeleft_setMenit;}
goto menu_isi_timer_timeleft_setJam;
menu_isi_timer_timeleft_setMenit:
lcd.setCursor(3,0);lcd.print("SET TIME");
lcd.setCursor(0,1);lcd.print(" Jam :"); lcd.print(jam);
lcd.setCursor(0,2);lcd.print(">Menit :"); lcd.print(menit);
lcd.setCursor(0,3);lcd.print(" Detik :"); lcd.print(detik);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();menit++;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();menit--;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_timer_timeleft_setDetik;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_timer_timeleft_setJam;}
goto menu_isi_timer_timeleft_setMenit;
menu_isi_timer_timeleft_setDetik:
lcd.setCursor(3,0);lcd.print("SET TIME");
lcd.setCursor(0,1);lcd.print(" Jam :"); lcd.print(jam);
lcd.setCursor(0,2);lcd.print(" Menit :"); lcd.print(menit);
lcd.setCursor(0,3);lcd.print(">Detik :"); lcd.print(detik);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();detik++;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();detik--;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_timer_timeleft_setMenit;}
goto menu_isi_timer_timeleft_setDetik;
menu_isi_timer_timecwccw_setLoop:
lcd.setCursor(0,0);lcd.print(">Loop : ");lcd.print(Cycle);
lcd.setCursor(0,1);lcd.print(" Forward : ");lcd.print(forw);
lcd.setCursor(0,2);lcd.print(" Reverse : ");lcd.print(reve);
lcd.setCursor(0,3);lcd.print(" Delay : ");lcd.print(del);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();Cycle--;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();Cycle++;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setForward;}
goto menu_isi_timer_timecwccw_setLoop;
menu_isi_timer_timecwccw_setForward:
lcd.setCursor(0,0);lcd.print(" Loop : ");lcd.print(Cycle);
lcd.setCursor(0,1);lcd.print(">Forward : ");lcd.print(forw);
lcd.setCursor(0,2);lcd.print(" Reverse : ");lcd.print(reve);
lcd.setCursor(0,3);lcd.print(" Delay : ");lcd.print(del);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();forw--;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();forw++;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setReverse;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setLoop;}
goto menu_isi_timer_timecwccw_setForward;
menu_isi_timer_timecwccw_setReverse:
lcd.setCursor(0,0);lcd.print(" Loop : ");lcd.print(Cycle);
lcd.setCursor(0,1);lcd.print(" Forward : ");lcd.print(forw);
lcd.setCursor(0,2);lcd.print(">Reverse : ");lcd.print(reve);
lcd.setCursor(0,3);lcd.print(" Delay : ");lcd.print(del);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();reve--;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();reve++;}
else if(digitalRead(bawah)==LOW){while(digitalRead(bawah)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setDelay;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setForward;}
goto menu_isi_timer_timecwccw_setReverse;
menu_isi_timer_timecwccw_setDelay:
lcd.setCursor(0,0);lcd.print(" Loop : ");lcd.print(Cycle);
lcd.setCursor(0,1);lcd.print(" Forward : ");lcd.print(forw);
lcd.setCursor(0,2);lcd.print(" Reverse : ");lcd.print(reve);
lcd.setCursor(0,3);lcd.print(">Delay : ");lcd.print(del);
if(digitalRead(oke)==LOW){while(digitalRead(oke)==LOW){}lcd.clear();goto menu_awal_time;}
else if(digitalRead(kiri)==LOW){while(digitalRead(kiri)==LOW){}lcd.clear();del--;}
else if(digitalRead(kanan)==LOW){while(digitalRead(kanan)==LOW){}lcd.clear();del++;}
else if(digitalRead(atas)==LOW){while(digitalRead(atas)==LOW){}lcd.clear();goto menu_isi_timer_timecwccw_setReverse;}
goto menu_isi_timer_timecwccw_setDelay;
*/
menu_isi_execution:
for (int i=1; i<=Cycle;Cycle--){
digitalWrite(forward, HIGH);
for (detik = detik; detik > 0; detik--) {
// for (detik2 = detik2; detik2 > 0; detik2--) {
// lcd.clear();
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(17, 1);lcd.print(detik2);
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("L");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
lcd.setCursor(12, 3); lcd.print(" RUN");
delay(250);
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(17, 1);lcd.print(detik2);
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("L");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
lcd.setCursor(12, 3); lcd.print(" RUN");
}
detik=5;
digitalWrite(forward, LOW);
// delay(500);
digitalWrite(reverse, HIGH);
for (detik2 = detik2; detik2 > 0; detik2--) {
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(17, 1);lcd.print(detik2);
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("R");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
lcd.setCursor(12, 3); lcd.print(" RUN");
delay(250);
lcd.setCursor(0, 0); lcd.print(" Volt :"); lcd.print(Volt); lcd.print(" Volt");
lcd.setCursor(0, 1); lcd.print(" Waktu :"); lcd.print(detik); lcd.print(" Sec");
lcd.setCursor(17, 1);lcd.print(detik2);
lcd.setCursor(0, 2); lcd.print(" Direct :"); lcd.print("R");
lcd.setCursor(0, 3); lcd.print(" Cycle :"); lcd.print(Cycle); lcd.print(" x");
lcd.setCursor(12, 3); lcd.print(" RUN");
}
detik2=5;
digitalWrite(reverse, LOW);
// delay(500);
}
lcd.clear();
goto menu_Volt;
goto menu_isi_execution;
}