//Program Motor Servo
//By Azzahid Tawarra L.P XI TEK 1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
const int RED_BUTTON_PIN = 32;
const int BLUE_BUTTON_PIN = 33;
const int SERVO_PIN = 13;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo motor;
int servoAngle = 90;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
pinMode(RED_BUTTON_PIN, INPUT_PULLUP);
pinMode(BLUE_BUTTON_PIN, INPUT_PULLUP);
motor.attach(SERVO_PIN);
motor.write(servoAngle);
updateLCD();
}
void loop() {
if (digitalRead(RED_BUTTON_PIN) == LOW) {
servoAngle = max(0, servoAngle - 3);
updateServoAndLCD();
delay(300);
}
if (digitalRead(BLUE_BUTTON_PIN) == LOW) {
servoAngle = min(180, servoAngle + 3);
updateServoAndLCD();
delay(300);
}
}
void updateServoAndLCD() {
motor.write(servoAngle);
updateLCD();
}
void updateLCD() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sudut Servo:");
lcd.setCursor(0, 1);
lcd.print(servoAngle);
lcd.print(" derajat");
}