/*======================================================================
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);
}