#include <Wire.h>
#include "RTClib.h"
#include "SevSeg.h"
RTC_DS1307 saat_modulu;
SevSeg ekran;
void setup() {
if (!saat_modulu.begin()) while (1);
if (!saat_modulu.isrunning()) {
saat_modulu.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
byte hane_sayisi = 4;
byte hane_pinleri[] = {10, 11, 12, 13};
byte segment_pinleri[] = {2, 3, 4, 5, 6, 7, 8, 9};
ekran.begin(COMMON_CATHODE, hane_sayisi, hane_pinleri, segment_pinleri, true, false, true, false);
ekran.setBrightness(90);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
}
void loop() {
DateTime su_an = saat_modulu.now();
int goruntulenecek_zaman = (su_an.hour() * 100) + su_an.minute();
if (digitalRead(A0) == HIGH) {
saat_modulu.adjust(DateTime(su_an.unixtime() + 3600));
delay(200);
}
if (digitalRead(A1) == HIGH) {
saat_modulu.adjust(DateTime(su_an.unixtime() + 60));
delay(200);
}
static unsigned long son_yanma_vakti = 0;
static bool nokta_durumu = false;
if (millis() - son_yanma_vakti >= 500) {
son_yanma_vakti = millis();
nokta_durumu = !nokta_durumu;
}
if (nokta_durumu) {
ekran.setNumber(goruntulenecek_zaman, 2);
} else {
ekran.setNumber(goruntulenecek_zaman, -1);
}
ekran.refreshDisplay();
}