#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
// untuk setting lcdnya
int lcd_char = 16;
int lcd_line = 2;
int lcd_address =0x27; // 0x27 adalah alamat dari lcdnya
LiquidCrystal_I2C lcd(lcd_address, lcd_char, lcd_line);
// untuk setting servonya
Servo myservo; // objek untuk mengendalikan servo
int servopin=13; // pin 13 untuk servo sebagai sinyal pwm
int servoAngleMin=0; // minimum angle dari servo
int servoAngleMax=180; // maximum angle dari servo
int16_t servoVal;
int potpin=34;
void setup(){
// initialize LCD
lcd.init(); // menyalakan backlight lcd
lcd.backlight();
lcd.print("Halo"); // print halo pada saat program baru saja dijalankan
delay(1500); // delay 1.30 detik
lcd.clear(); // membersihkan layar lcd dari program sebelumnya
lcd.setCursor(0, 0); // print pada karakter pertama di garis pertama
lcd.print("MUHAMMAD AQMAL");
lcd.setCursor(0, 1); // print pada karakter pertama di baris kedua
lcd.print("202010130311072");
delay(2000);// delay 2 detik
lcd.clear();
lcd.setCursor(0, 0); // print pada karakter pertama di garis pertama
lcd.print("FAUZI TSABIT K");
lcd.setCursor(0, 1); // print pada karakter pertama di baris kedua
lcd.print("202010130311070");
delay(2000);// delay 2 detik
lcd.clear();
lcd.setCursor(0, 0); // print pada karakter pertama di garis pertama
lcd.print("DAFA CAHYA ADI P");
lcd.setCursor(0, 1); // print pada karakter pertama di baris kedua
lcd.print("202010130311117");
delay(2000); // delay 2 detik
lcd.clear();
myservo.attach(servopin); // pin 13 untuk servo sebagai sinyal pwm nya
}
void loop(){
int16_t adcVal = analogRead(potpin); // untuk nilai adc potensiometer yang dari 0-4095
servoVal = map(adcVal,0,4095,servoAngleMin,servoAngleMax); //nilai adc = 0-4095 dan nilai harapannya adalah 0-180
myservo.write(servoVal);
lcd.setCursor(0, 0);
lcd.print("Nilai ADC:");
lcd.print(adcVal);
lcd.setCursor(0, 1);
lcd.print("Angle Servo:");
lcd.print(servoVal);
lcd.println((char)223);
delay(100);
}