#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
// Inisialisasi LCD dengan alamat I2C dan ukuran layar
LiquidCrystal_I2C lcd(0x27, 16, 2); // Sesuaikan alamat jika perlu
Servo myServo; // Membuat objek servo
// Pin konfigurasi
const int potPin = A0; // Pin ADC untuk potensiometer
const int servoPin = 9; // Pin kontrol untuk servo
void setup() {
// Inisialisasi LCD
lcd.init();
lcd.backlight(); // Mengaktifkan lampu latar LCD
// Menampilkan teks awal pada LCD
lcd.setCursor(0, 0);
lcd.print("Servo Position:");
// Inisialisasi Servo
myServo.attach(servoPin);
// Inisialisasi serial monitor untuk debugging
Serial.begin(9600);
}
void loop() {
// Membaca nilai potensiometer
int potValue = analogRead(potPin);
// Mengonversi nilai potensiometer (0-1023) ke sudut servo (0-180)
int servoAngle = map(potValue, 0, 1023, 0, 180);
// Menggerakkan servo ke posisi yang ditentukan
myServo.write(servoAngle);
// Menampilkan sudut servo di LCD
lcd.setCursor(0, 1);
lcd.print("Angle: ");
lcd.print(servoAngle);
lcd.print(" "); // Tambahkan spasi agar angka lama terhapus
// Menampilkan data pada serial monitor (untuk debugging)
Serial.print("Pot Value: ");
Serial.print(potValue);
Serial.print(" | Servo Angle: ");
Serial.println(servoAngle);
// Delay untuk stabilitas pembacaan
delay(200);
}