#include <Wire.h>
#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
// Pin tombol dan LED (Pin 3 pada ESP32)
const int tombolA = 2; // Pin 2 untuk Tombol A
const int tombolB = 3; // Pin 3 untuk Tombol B (GPIO3 pada ESP32)
const int ledPin = 4; // Pin 13 untuk LED
// LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C 0x27, LCD 16x2
void setup() {
pinMode(tombolA, INPUT_PULLUP); // Tombol A dengan pull-up internal
pinMode(tombolB, INPUT_PULLUP); // Tombol B dengan pull-up internal
pinMode(ledPin, OUTPUT); // LED sebagai output
lcd.begin(16, 2); // Inisialisasi LCD
lcd.init();
lcd.backlight();
}
void loop() {
if (digitalRead(tombolA) == LOW) { // Tombol A ditekan
lcd.clear();
lcd.print("LED KEDIP");
blinkLED(10); // LED kedip 10 kali
}
else if (digitalRead(tombolB) == LOW) { // Tombol B ditekan
lcd.clear();
lcd.print("LED PADAM");
digitalWrite(ledPin, LOW); // Matikan LED
}
}
void blinkLED(int times) {
for (int i = 0; i < times; i++) {
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(500); // Tunggu 500ms
digitalWrite(ledPin, LOW); // Matikan LED
delay(500); // Tunggu 500ms
}
}