#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define pb1 13
#define pb2 12
#define pb3 11
#define pb4 10
#define led 2
#define buzzerPin 3
#define led2 4
#define potensio A0
int hasilvr;
char tampil[33];
bool s1,s2,s3,s4=0;
int menu =0;
int hitung;
void setup() {
// put your setup code here, to run once:
lcd.begin(20,4);
lcd.backlight();
Serial.begin(9600);
pinMode(led,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(potensio, INPUT);
pinMode(pb1, INPUT_PULLUP);
pinMode(pb2, INPUT_PULLUP);
pinMode(pb3, INPUT_PULLUP);
pinMode(pb4, INPUT_PULLUP);
lcd.setCursor(4,0);
lcd.print("DAFTAR MENU");
lcd.setCursor(2,2);
lcd.print(" NAMA HITUNG");
lcd.setCursor(2,3);
lcd.print(" VR ALARM");
}
void loop() {
Serial.println(menu);
// put your main code here, to run repeatedly:
if(digitalRead(pb1)==0){
menu++;
s1=1;
if(menu>4)menu=1;
s1=0;
while(digitalRead(pb1)==0){}
}
else if(digitalRead(pb2)==0) {
delay(300);
s2=1;
menu--;
if(menu<1)menu=4;
s2=0;
}
else if(digitalRead(pb3)==0&& menu==1){
delay(300);
lcd.clear();
s3=1;
menu=5;
s3=0;
}
else if(digitalRead(pb3)==0 && menu==2){
delay(300);
lcd.clear();
s3=1;
menu=6;
s3=0;
}
else if(digitalRead(pb3)==0 && menu==3){
delay(300);
lcd.clear();
s3=1;
menu=7;
s3=0;
}
else if (digitalRead(pb3)==0 && menu==4){
delay(300);
lcd.clear();
s3=1;
menu=8;
s3=0;
}
else if(digitalRead(pb4)==0 && menu==5) {
delay(300);
lcd.clear();
s4=1;
menu=1;
Serial.println(s4);
s4=0;
}
else if(digitalRead(pb4)==0 && menu==6){
delay(300);
lcd.clear();
s4=1;
menu=2;
s4=0;
}
else if(digitalRead(pb4)==0 && menu==7){
delay(300);
lcd.clear();
s4=1;
menu=3;
s4=0;
}
else if(digitalRead(pb4)==0 && menu==8){
delay(300);
noTone(buzzerPin);
digitalWrite(led, LOW);
digitalWrite(led2, LOW);
lcd.clear();
s4=1;
menu=4;
s4=0;
}
if(menu==1){
lcd.setCursor(4,0);
lcd.print("DAFTAR MENU");
lcd.setCursor(2,2);
lcd.print("> NAMA HITUNG");
lcd.setCursor(2,3);
lcd.print(" VR ALARM");
}
else if(menu==2){
lcd.setCursor(4,0);
lcd.print("DAFTAR MENU");
lcd.setCursor(2,2);
lcd.print(" NAMA HITUNG");
lcd.setCursor(2,3);
lcd.print("> VR ALARM");
}
else if(menu==3){
lcd.setCursor(4,0);
lcd.print("DAFTAR MENU");
lcd.setCursor(2,2);
lcd.print(" NAMA > HITUNG");
lcd.setCursor(2,3);
lcd.print(" VR ALARM");
}
else if(menu==4){
lcd.setCursor(4,0);
lcd.print("DAFTAR MENU");
lcd.setCursor(2,2);
lcd.print(" NAMA HITUNG");
lcd.setCursor(2,3);
lcd.print(" VR > ALARM");
}
else if(menu==5){
lcd.setCursor(7,1);
lcd.print("MIJUN");
lcd.setCursor(6,2);
lcd.print("UZUMAKI");
}
else if(menu==6){
hasilvr=analogRead(potensio);
lcd.setCursor(2,1);
lcd.print("NILAI SENSOR VR");
lcd.setCursor(7,2);
sprintf(tampil,"%4d",hasilvr);
lcd.print(tampil);
delay(100);
}
else if(menu==7){
hitung++;
if(hitung<=15){
lcd.setCursor(0,2);
sprintf(tampil,"MARI BERHITUNG : %2d",hitung);
lcd.print(tampil);
delay(300);
}
if(hitung>15){
hitung=0;
}
}
else if(menu==8){
lcd.setCursor(7,1);
lcd.print("ALARM");
lcd.setCursor(5,2);
lcd.print("BAHAYA!!!!!!");
tone(buzzerPin, 660);
digitalWrite(led, HIGH);
digitalWrite(led2, LOW);// Menghasilkan bunyi frekuensi 1000 Hz pada buzzer
delay(150);
lcd.noBacklight();
lcd.clear();// Tunda selama 1 detik
noTone(buzzerPin);
digitalWrite(led, LOW);
digitalWrite(led2, HIGH); // Matikan bunyi buzzer
delay(50);
lcd.backlight();
lcd.setCursor(7,1);
lcd.print("ALARM");
lcd.setCursor(5,2);
lcd.print("BAHAYA!!!!!!");
// Tunda selama 1 detik sebelum memulai bunyi kembali
digitalWrite(led, LOW);
digitalWrite(led2, HIGH);
tone(buzzerPin, 500);
delay(150);
}
}