#include <TM1637.h> //zahrne knihovnu 7 segmentovky
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
int i = 0;
const int CLK = 2;
const int DIO = 3;
TM1637 tm(CLK, DIO);
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
Serial.begin(115200);
tm.init();
tm.set (BRIGHT_TYPICAL);
lcd.init();
lcd.backlight();
rtc.begin();
}
void loop() {
DateTime now = rtc.now();
lcd.setCursor(0, 0);
lcd.print("Naposledy zapnut");
pinMode(A0, INPUT); //nastaví A0 jako vstup
tm.display(0, (i / 1000) % 10); //zajišťuje psaní na čtvrtou pozici 7 segmentu, max 9999
tm.display(1, (i / 100) % 10); //zajišťuje psaní na třetí pozici 7 segmentu, max 999
tm.display(2, (i / 10) % 10); //zajišťuje psaní na druhou pozici 7 segmentu, max 99
tm.display(3, i % 10); //zajišťuje psaní na první pozici 7 segmentu, mx 9
pinMode(A0, OUTPUT); //nastaví A0 jako výstup
if (analogRead(A0) >= HIGH) { //když na A0 je 1 tak přičte k proměnné "i" 1
i ++;
lcd.setCursor (0, 1);
lcd.print(now.day(), DEC);
lcd.setCursor (2, 1);
lcd.print('.');
lcd.setCursor (3, 1);
lcd.print(now.month(), DEC);
lcd.setCursor (4, 1);
lcd.print('.');
lcd.setCursor (5, 1);
lcd.print(now.year(), DEC);
lcd.setCursor(10, 1);
lcd.print(now.hour(), DEC);
lcd.setCursor(12, 1);
lcd.print(':');
lcd.setCursor(13, 1);
lcd.print(now.minute(), DEC);
while (analogRead(A0) >= HIGH) { //mezitím nastaví A0 na 0 aby se na 7 segment neustále nepřičítalo
digitalWrite(A0, LOW);
}
}
delay(100);
}