#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#include <Servo.h>
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD dan ukuran (16x2)
Servo servoMotor;
void setup() {
Wire.begin();
rtc.begin();
if (rtc.isrunning()); {
// Serial.println("RTC berjalan!");
}
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Menyalakan backlight LCD
servoMotor.attach(3); // Menghubungkan servo ke pin 3
}
void loop() {
DateTime now = rtc.now();
int hour = now.hour();
lcd.setCursor(0, 0);
lcd.print("Waktu: ");
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
if (hour >= 5 && hour < 12) { // Pagi (05:00 - 11:59)
lcd.setCursor(0, 1);
lcd.print("Pagi");
moveServo(45);
}
else if (hour >= 12 && hour < 17) { // Siang (12:00 - 16:59)
lcd.setCursor(0, 1);
lcd.print("Siang");
moveServo(90);
}
else { // Sore (17:00 - 04:59)
lcd.setCursor(0, 1);
lcd.print("Sore");
moveServo(0);
}
// Tunggu 1 detik sebelum memperbarui layar dan servo
}
void moveServo(int angle) {
servoMotor.write(angle);
// Tunggu 0.5 detik agar servo bergerak ke posisi yang diinginkan
}