/*======================================================================
PROGRAM INPUT DIGITAL & INPUT ANALOG untuk menguji :
ESP8266 WeMos_D1_Mini, ESP32 WeMos_D1_R32 board, ESP32 DevKitC_V4 board
-----------------------------------------------------------------------
Input digital : pin 2 dan pin 4
Input Analog melalui Potensiometer : pin A0
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 utk tegangan analog (D1_Mini)
int PB1 = 2; //deklarasi pin 2 terhubung ke PB-1
int PB2 = 4; //deklarasi pin 4 terhubung ke PB-2
void setup() {
Serial.begin(9600); //Aktifkan UART utk tampilkan data ke PC
pinMode(PB1,INPUT_PULLUP); pinMode(PB2, INPUT_PULLUP);
lcd.init(); lcd.backlight();
lcd.setCursor(0,0); lcd.print("Program Uji ESPx");
lcd.setCursor(0,1); lcd.print("input dig+Analog");
delay(5000); lcd.clear();
lcd.setCursor(0,0); lcd.print("Push PB1 or PB2 ");
}
void loop() {
int potValue=analogRead(potPin); //baca tegangan dari pin input analog
Serial.print("Data Potensio : ");
Serial.println(potValue);
if(digitalRead(PB1) == LOW) {
Serial.print("PB1 ditekan ");
lcd.setCursor(0,0); lcd.print("PB1 pressed! ");
while(digitalRead(PB1)==LOW); // tunggu sampai tombol dilepas
} else
if (digitalRead(PB2) == LOW) {
Serial.print("PB2 ditekan ");
lcd.setCursor(0,0); lcd.print("PB2 pressed! ");
while(digitalRead(PB2)==0); // tunggu sampai tombol dilepas
}
else { lcd.setCursor(0,0); lcd.print("Push PB1 or PB2 "); }
// Tampilkan analog
lcd.setCursor(0,1); lcd.print("Dat_Analog: ");
lcd.setCursor(12,1); lcd.print(" "); //hapus sisa digit lama
lcd.setCursor(12,1); lcd.print(potValue);
}