#include "RTClib.h"
#include <LiquidCrystal.h>
RTC_DS1307 rtc;
int rs = 3, en = 4, d4 = 5, d5 = 6, d6 = 7, d7 = 8;
unsigned long teraz = 0;
unsigned long vtedy = 0;
unsigned long vtedy2 = 0;
float teplota = 21.60;
int obraz = 0;
int casChodu = 0;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
analogReference(EXTERNAL);
rtc.begin();
pinMode(rs, OUTPUT);
pinMode(en, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(d5, OUTPUT);
pinMode(d6, OUTPUT);
pinMode(d7, OUTPUT);
pinMode(9, INPUT_PULLUP);
lcd.begin(20, 4);
}
void loop() {
teraz = millis();
casChodu = millis() / 3600000; // množstvo hodín chodu zariadenia
DateTime now = rtc.now();
if(digitalRead(9) == LOW && obraz == 0) {
delay(250);
obraz = 1;
}
if(obraz >= 1 && teraz - vtedy2 >= 5000 && obraz <= 4) {
obraz = obraz + 1;
vtedy2 = teraz;
}
if(obraz >= 1 && teraz - vtedy2 >= 5000 && obraz >= 5) {
obraz = 0;
vtedy2 = teraz;
}
if(teraz - vtedy >= 200) {
lcd.clear();
vtedy = teraz;
}
switch(obraz) {
case 0:
lcd.setCursor(0, 0);
lcd.print(now.hour());
lcd.print(":");
lcd.print(now.minute());
lcd.print(":");
lcd.print(now.second());
lcd.setCursor(9, 0);
lcd.print(now.day());
lcd.print(". ");
lcd.print(now.month());
lcd.print(". ");
lcd.print(now.year());
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print("Temp: ");
lcd.print(teplota);
lcd.print(" Celsius");
teplota = analogRead(A0) / 8.184;
break;
case 1:
lcd.setCursor(5, 1);
lcd.print("Runtime: ");
lcd.print(casChodu);
break;
case 2:
break;
case 3:
break;
case 4:
break;
}
}