#include <TM1637Display.h>
#include <Wire.h>
#include <RTClib.h>
// definisikan koneksi
const int CLK = 3; //pin CLK untuk TM1637
const int DIO = 2; //pin DIO untuk TM1637
const int buzzerPin = 8; // pin untuk buzzer
// buat objek display dan RTC
TM1637Display display(CLK, DIO);
RTC_DS1307 rtc;
void setup() {
display.setBrightness(0x0f); // set tingkat kecerahan display
pinMode(buzzerPin, OUTPUT); // set pin buzzer sebagai OUTPUT
Wire.begin();
rtc.begin();
//jika RTC tidak berjalan, atur waktu (hanya untuk pertama kali)
if (!rtc.isrunning()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // atur waktu
}
}
void loop() {
DateTime now = rtc.now(); //ambil waktu sekarang
int displayTime = now.hour() * 100 + now.minute(); // format waktu
display.showNumberDec(displayTime, false, 4,0); // tampilkan waktu
// bunyi buzzer setiap jam
if (now.minute() == 0 && now.second() == 0) {
tone(buzzerPin, 1000); // bunyi buzzer pada frekuensi 1000 Hz
delay(1000); // tunggu 1 detik
noTone(buzzerPin); // matikan suara
}
delay(1000); // delay 1 detik
}