#include <ESP32Servo.h>
#include <LiquidCrystal_I2C.h>
#define BTN_LEFT 18
#define BTN_RIGHT 19
#define SERVO_PIN 14
Servo servo;
int posisi = 90;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(BTN_LEFT, INPUT_PULLUP);
pinMode(BTN_RIGHT, INPUT_PULLUP);
servo.attach(SERVO_PIN);
servo.write(posisi);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Servo Angle:");
}
void loop() {
if (digitalRead(BTN_LEFT) == LOW) {
posisi--;
if (posisi < 0) posisi = 0;
servo.write(posisi);
updateLCD();
delay(150);
}
if (digitalRead(BTN_RIGHT) == LOW) {
posisi++;
if (posisi > 180) posisi = 180;
servo.write(posisi);
updateLCD();
delay(150);
}
}
void updateLCD() {
lcd.setCursor(0,1);
lcd.print("Derajat: ");
lcd.print(posisi);
lcd.print(" "); // hapus sisa angka
}