/*======================================================================
              PROGRAM INPUT DIGITAL & INPUT ANALOG untuk menguji : 
                         - ESP8266 WeMos_D1_Mini  
                         - ESP32 WeMos_D1_R32 board 
                        - ESP32 DevKitC_V4 board
    --------------------------------------------------------------------
      Input digital : pin 0 dan pin 2 
      Input Analog melalui Potensiometer : pin A0 (untuk D1_Mini)
      LCD-I2C dikoneksi ke pin SDA dan SCL
      Lihat datasheet untuk menentukan pin pada ketiga ESP tersebut
  ====================================================================*/
#include <LiquidCrystal_I2C.h>    //deklarasi library LCD-I2C
LiquidCrystal_I2C lcd(0x27,16,2); //membuat nama objek lcd

int potPin = A0;  //pin A0 sbg input pin untuk tegangan analog (D1_Mini)
int PB1    = 14;   //deklarasi pin 14 terhubung ke Push Button 1
int PB2    = 16;   //deklarasi pin 16 terhubung ke Push Button 2
int potValue, digValue1, digValue2 ; //deklarasi berbagai variabel

void setup() { 
  Serial.begin(9600);//Aktifkan UART utk tampilkan tegangan analog ke PC
  pinMode(PB1, INPUT_PULLUP); pinMode(PB2, INPUT_PULLUP);
  //pinMode(PB1, INPUT); pinMode(PB2, INPUT);
  lcd.init(); lcd.backlight();   //Inisialisasi dan nyalakan LCD
  lcd.setCursor(0,0);            //pindahkan kursor ke kolom-0 baris-0
  lcd.print("Program Uji ESPx"); //tulis ke LCD : "Program Uji ESPx"
  lcd.setCursor(0,1);            //pindahkan kursor ke kolom-0 baris-1
  lcd.print("input dig+Analog"); //tulis ke LCD : "Led-Blink & LCD"
  delay(2000);   lcd.clear();    //delat dan hapus LCD
  lcd.setCursor(0,0); lcd.print("Push PB1 or PB2 ");
}
  
void loop() { 
  potValue=analogRead(potPin);//baca tegangan dari pin input analog 
  Serial.print("Data Potensio : "); Serial.println(potValue); 
  digValue1 = digitalRead(PB1); //baca data penekanan tombol PB1
  digValue2 = digitalRead(PB2); //baca data penekenan tombol PB2
  if(digValue1==0) { Serial.print("PB1 ditekan   "); } 
  if(digValue2==0) { Serial.print("PB2 ditekan   "); }

  if(digValue1==0) {lcd.setCursor(0,0); lcd.print("PB1 pressed!    ");}
  if(digValue2==0) {lcd.setCursor(0,0); lcd.print("PB2 pressed!    ");} 
  lcd.setCursor(0,1);  lcd.print("Dat_Analog: "); 
  lcd.setCursor(12,1); lcd.print("     "); 
  lcd.setCursor(12,1); lcd.print(potValue);
} 
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
pot1:GND
pot1:SIG
pot1:VCC
gnd1:GND
vcc1:VCC