#include <LiquidCrystal_I2C.h>
#include <SimpleTimer.h>
#include <OneButton.h>
SimpleTimer timeout(10000);
LiquidCrystal_I2C lcd(0x27, 20, 4);
OneButton BTNgor(3,true);
OneButton BTNdol(2,true);
OneButton BTNenter(4,true);
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
BTNgor.attachClick(ClickGor);
BTNdol.attachClick(ClickDol);
BTNenter.attachClick(ClickEnter);
attachInterrupt(digitalPinToInterrupt(2),InteruptDol,CHANGE);
attachInterrupt(digitalPinToInterrupt(3),InteruptGor,CHANGE);
}
//definiranje spremenljivk
int MenuIndex = 1;
int GorStanje = 0;
int DolStanje = 0;
bool dnNacin = false;
String dnNacinT[] = {"Izklopljen", "Vklopljen"};
int Moc = 2;
String MocT[] = {"Minimalna ", "Srednja ", "Maksimalna "};
int Delovanje = 3;
String DelovanjeT[] = {"Avtomatsko DN", "Avtomatsko ", "Rocno DN ", "Rocno "};
//konec definiranja spremenljivk
void InteruptDol(){
BTNdol.tick();
}
void InteruptGor(){
BTNgor.tick();
}
void ClickGor(){
MenuIndex ++;
timeout.reset();
}
void ClickDol(){
MenuIndex --;
timeout.reset();
}
void ClickEnter(){
}
void loop() {
BTNenter.tick();
//Števec neaktivnosti in reset na začetni zaslon
if (timeout.isReady()) {
if (MenuIndex != 1) {
MenuIndex = 1;
}
timeout.reset();
}
//
Prikaz();
}
void Prikaz() {
switch (MenuIndex) {
case 0:
MenuIndex = 4;
break;
case 1:
lcd.setCursor(0, 1);
lcd.print("Nacin: ");
lcd.print(DelovanjeT[Delovanje]);
lcd.setCursor(0, 2);
lcd.print("Moc: ");
lcd.print(MocT[Moc]);
lcd.setCursor(0, 3);
lcd.print("Cas: ");
break;
case 2:
lcd.setCursor(0, 1);
lcd.print(" NASTAVITVE ");
lcd.setCursor(0, 2);
lcd.print("Dnevno/Nocni nacin: ");
lcd.setCursor(0, 3);
lcd.print(dnNacinT[dnNacin]);
break;
case 3:
lcd.setCursor(0, 1);
lcd.print(" NASTAVITVE ");
lcd.setCursor(0, 2);
lcd.print("Cas susenja: ");
break;
case 4:
lcd.setCursor(0, 1);
lcd.print(" NASTAVITVE ");
lcd.setCursor(0, 2);
lcd.print("Moc susenja: ");
lcd.setCursor(0, 3);
lcd.print(MocT[Moc]);
break;
case 5:
MenuIndex = 1;
break;
}
//Skupna vrstica. Prikaz časa in datuma
lcd.setCursor(0, 0);
lcd.print("16.09.2021 00:15 ");
lcd.print(MenuIndex);
lcd.print("/");
lcd.print("4");
//
}
void Nastavitve() {
}