#include <Servo.h>
#include <Wire.h>
#include <RTClib.h>
#define TRIG_PIN 6
#define ECHO_PIN 7
#define SERVO_PIN 9
Servo foodDispenser;
RTC_DS3231 rtc;
void setup() {
foodDispenser.attach(SERVO_PIN);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, set the time!");
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Uncomment this line and set the time
}
}
void loop() {
DateTime now = rtc.now();
// Contoh pemberian makan pada jam 7 pagi dan 5 sore
if ((now.hour() == 7 || now.hour() == 17) && now.minute() == 0) {
dispenseFood();
delay(60000); // Tunggu 1 menit untuk menghindari pemberian makanan berulang dalam satu menit
}
delay(1000); // Tunda 1 detik sebelum mengulangi loop
}
void dispenseFood() {
foodDispenser.write(90); // Posisi untuk mengeluarkan makanan
delay(5000); // Tunggu 5 detik untuk memastikan makanan keluar
foodDispenser.write(0); // Kembali ke posisi awal
Serial.println("Makanan diberikan!");
}