// Deny Adit Setiawan
#include <Servo.h> // Memasukkan pustaka Servo
#include <LiquidCrystal_I2C.h> // Memasukkan pustaka LCD I2C
int potensiometer = A0; // Pin potensiometer
int sensor = 0; // Variabel untuk membaca nilai potensiometer
int sudut = 0; // Variabel untuk menyimpan nilai sudut servo
Servo servoMotor; // Membuat objek servo
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD dan ukuran 16x2
void setup() {
Serial.begin(9600); // Memulai komunikasi serial
pinMode(potensiometer, INPUT); // Pin potensiometer sebagai input
servoMotor.attach(9); // Menentukan pin servo (gunakan pin digital)
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Menghidupkan lampu latar LCD
lcd.setCursor(0, 0); // Set posisi kursor (baris ke-0)
lcd.print("Potensio:"); // Teks awal
lcd.setCursor(0, 1); // Set posisi kursor (baris ke-1)
lcd.print("Servo:"); // Teks awal
}
void loop() {
sensor = analogRead(potensiometer); // Membaca nilai potensiometer
sudut = map(sensor, 0, 1023, 0, 180); // Mengonversi nilai menjadi sudut 0-180°
servoMotor.write(sudut); // Menggerakkan servo ke sudut tertentu
// Menampilkan nilai ke Serial Monitor
Serial.print("Potensiometer: ");
Serial.print(sensor);
Serial.print(" | Sudut Servo: ");
Serial.println(sudut);
// Menampilkan nilai ke LCD
lcd.setCursor(10, 0); // Set posisi untuk nilai potensiometer (kolom ke-10, baris ke-0)
lcd.print(" "); // Membersihkan teks sebelumnya
lcd.setCursor(10, 0);
lcd.print(sensor); // Menampilkan nilai potensiometer
lcd.setCursor(7, 1); // Set posisi untuk nilai sudut servo (kolom ke-7, baris ke-1)
lcd.print(" "); // Membersihkan teks sebelumnya
lcd.setCursor(7, 1);
lcd.print(sudut); // Menampilkan nilai sudut servo
delay(500); // Memberikan jeda 500 ms untuk pembacaan
}