#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//----------------define pin ESP8266-------------------------//
// #define LATCH_DIO D4
// #define CLK_DIO D7
// #define DATA_DIO D8
// #define LED D1
// #define BUZZER D3
// #define SW1 D5
// #define SW2 D6
// #define SW3 D0
// #define POT A0
//-----------------------------------------------------------//
//----------------define pin ESP32---------------------------//
#define LED 19
#define BUZZER 23
#define SW1 16
#define SW2 17
#define SW3 18
#define POT 0
//-----------------------------------------------------------//
//-------------------define parameter LCD--------------------//
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
//----------------------------------------------------------//
//-----------------variabel---------------------------------//
int s1 = 0;
int s2 = 0;
int s3 = 0;
int k1 = 0;
int k2 = 0;
int k3 = 0;
int menu = 0;
int data_adc = 0;
int counting = true;
int counter = 0;
//----------------------------------------------------------//
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
pinMode(SW1, INPUT_PULLUP); //SW1
pinMode(SW2, INPUT_PULLUP); //SW2
pinMode(SW3, INPUT_PULLUP); //SW3
pinMode(LED, OUTPUT); //LED
pinMode(BUZZER, OUTPUT); //BUZZER
pinMode(POT, INPUT_PULLUP); //ADC
digitalWrite(LED, 1); //off LED at start
digitalWrite(BUZZER, 1); //off BUZZER at start
Serial.begin(115200);
Serial.println("Hello, ESP32!");
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("ZAKIRAMADHAN");
lcd.setCursor(4, 1);
lcd.print("XI TAV 1");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LED OFF BUZZ OFF ");
lcd.setCursor(0, 1);
lcd.print("Counter: 0 ");
}
void loop() {
s1 = digitalRead(SW1);
s2 = digitalRead(SW2);
s3 = digitalRead(SW3);
data_adc = analogRead(POT);
if(s1 == 0 && k1 == 0){
k1 = 1;
}
if(s1 == 1 && k1 == 1){
menu++;
k1 = 0;
}
if(s2 == 0 && k2 == 0){
k2 = 1;
}
if(s2 == 1 && k2 == 1){
menu--;
k2 = 0;
}
if(s3 == 0 && k2 == 0){
k2 = 1;
}
if(s3 == 1 && k2 == 1){
menu--;
k2 = 0;
}
//--------button press SW1--------------------------//
if(s1 == 0){
digitalWrite(19, LOW);
lcd.setCursor(0, 0);
lcd.print("LED ON BUZZ OFF ");
lcd.setCursor(0, 1);
lcd.print("Counter: 0 ");
}
//--------------------------------------------------//
//--------button press SW2--------------------------//
if(s2 == 0){
//isi program
digitalWrite(23, LOW);
digitalWrite(19, HIGH);
lcd.setCursor(0, 0);
lcd.print("LED OFF BUZZ ON ");
lcd.setCursor(0, 1);
lcd.print("Counter: 0 ");
}
//-----------------------------------------------b---//
if(s3 == 0){
if (counting) {
delay(200); // Wait for 200 milliseconds
lcd.setCursor(9, 1);
}
lcd.print(counter);
lcd.print(" "); // Clear remaining characters
counter++;
if (counter > 100) {
counter = 0;
}
}
// //-----------pembatas menu----------------------------------//
// if(menu > 3){
// menu = 0;
// }
// if(menu < 0){
// menu = 0;
// }
// //----------------------------------------------------------//
// if(menu == 0){
// //HOME
// lcd.setCursor(0, 0);
// lcd.print("------HOME------");
// lcd.setCursor(0, 1);
// lcd.print("----------------");
// }
// if(menu == 1){
// //MENU 1
// lcd.setCursor(0, 0);
// lcd.print("-----MENU 1-----");
// lcd.setCursor(0, 1);
// lcd.print("---SW3 for LED--");
// //--------button press release SW3--------------------//
// if(s3 == 0){
// digitalWrite(LED, 0);
// }
// else{
// digitalWrite(LED, 1);
// }
// }
// if(menu == 2){
// //MENU 2
// lcd.setCursor(0, 0);
// lcd.print("-----MENU 2-----");
// lcd.setCursor(0, 1);
// lcd.print("-SW3 for Buzzer-");
// if(s3 == 0){
// digitalWrite(BUZZER, 0);
// }
// else{
// digitalWrite(BUZZER, 1);
// }
// }
// if(menu == 3){
// //MENU 3
// lcd.setCursor(0, 0);
// lcd.print("-----MENU 3-----");
// lcd.setCursor(0, 1);
// lcd.print("isi program lain");
// }
// lcd.setCursor(0, 0);
// lcd.print(menu);
// lcd.setCursor(0, 1);
// lcd.print(data_adc);
// Serial.println(s3);
}