#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
Servo motor;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD 16x2, biasanya 0x27
int pot = A0; // Pin analog untuk potensiometer
int val[2][1]; // Array untuk menyimpan nilai sudut dari potensiometer
void setup() {
motor.attach(6); // Hubungkan servo ke pin 8
lcd.begin(16, 2); // Mulai LCD dengan ukuran 16x2
lcd.backlight(); // Menyalakan lampu latar LCD
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Set kursor ke posisi awal
lcd.print("Potensio: "); // Tampilkan teks "Potensio: "
lcd.setCursor(0, 1); // Set kursor ke baris kedua
lcd.print("Servo: "); // Tampilkan teks "Sudut: "
Serial.begin(9600); // Mulai komunikasi serial
}
void loop() {
val[0][0] = analogRead(pot); // Baca nilai dari potensiometer
val[1][0] = map(val[0][0], 0, 1023, 0, 180); // Pemetaan nilai 0-1023 ke 0-180
motor.write(val[1][0]); // Gerakkan servo ke sudut yang dibaca
delay(15); // Tunggu 15ms untuk stabilitas servo
// Tampilkan nilai potensiometer
lcd.setCursor(10, 0); // Kursor ke kolom 10 di baris pertama
lcd.print(" "); // Hapus nilai sebelumnya
lcd.setCursor(10, 0); // Atur ulang posisi kursor
lcd.print(val[0][0]); // Tampilkan nilai potensiometer
// Tampilkan nilai sudut
lcd.setCursor(7, 1); // Kursor ke kolom 7 di baris kedua
lcd.print(" "); // Hapus nilai sebelumnya
lcd.setCursor(7, 1); // Atur ulang posisi kursor
lcd.print(val[1][0]); // Tampilkan nilai sudut
delay(200); // Tunggu 200ms sebelum mengulangi
}