#include "RTClib.h"
#include <Wire.h>
#define cln_pin 6
static RTC_DS1307 RTC;
const unsigned int digits[10] = {126, 48, 109, 121, 51, 91, 95, 112, 127, 123}; //nebo lze zapsat nula jako 0b1111110
const unsigned int digit_pins[4] = {2, 3, 4, 5};
const unsigned int leds[7] = {7, 8, 9, 10, 11, 12, 13};
void setup() {
for (int i = 2; i < 14; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
Serial.begin(9600);
RTC.begin();
char a[] = {__TIME__};
a[1] = char(int(a[1]) +1);
RTC.adjust(DateTime(__DATE__, a));
//RTC.setHourMode(CLOCK_H24);
}
void loop() {
DateTime TimeNow = RTC.now();
int num_to_display = TimeNow.hour()*100 + TimeNow.minute();
//num_to_display = byte(num_to_display);
//Serial.println(num_to_display);
for (int i = 3; i >= 0; i--) {
display_digit(num_to_display % 10, i);
num_to_display = int(num_to_display / 10);
}
if (TimeNow.second() % 2 == 0) {
digitalWrite(cln_pin, HIGH);
}
else {
digitalWrite(cln_pin, LOW);
}
}
void display_digit(int num, int dig) {
num = digits[num];
for (int i = 0; i < 7; i++) {
digitalWrite(leds[6 - i], 1-((num >> i) & 1));
}
digitalWrite(digit_pins[dig], HIGH);
delay(25);
digitalWrite(digit_pins[dig], LOW);
}