kód je zde:
Kód: Vybrat vše
//----Funkce obsluhy displeje--------------------------------------
// pb pocet zobrazovanych bloku
// setCursor: co[] znak na radku, ro[] radek displeje
// va[] zobrazovane hodnoty
void Display(byte pb, byte co[], byte ro[], String va[]) {
for(int i = 0; i < pb; i++) {
LCD.setCursor(co[i],ro[i]);
LCD.print(va[i]);
}
}
//-------Nastavení casu------------------------------------
void timeSetup() {
bool Century=true;
bool h12;
bool PM;
byte Year = Clock.getYear();
byte Month = Clock.getMonth(Century);
byte Date = Clock.getDate();
byte DoW = Clock.getDoW();
byte Hour = Clock.getHour(h12, PM);
byte Minute = Clock.getMinute();
byte Second = Clock.getSecond();
char datum[15];
char cas[10];
//Vytvoreni zobrazovanych hodnot
snprintf(datum, sizeof(datum), "20%02d %02d.%02d.", Year, Date, Month);
snprintf(cas, sizeof(cas), "%02d:%02d:%02d", Hour, Minute, Second);
byte col[]={4,6,5};
byte row[]={0,1,2};
String val[]={datum, (String)dny[DoW], cas};
Display(3,col,row,val); //volani obsluhy displeje
//----------------------------
switch(Set){ //polozky nastaveni casu.
case 1: // Potvrzenim polozky beze zmeny,preskoci na dalsi polozku,k zapisu dat nedojde
if(Year != Year+krok) {
Clock.setYear(Year+krok); //Okamzite ulozeni zmeny do RTC
krok=0;
}
break;
case 2:
if(Date != Date+krok) {
Clock.setDate(Date+krok);
krok=0;
}
break;
case 3:
if(Month != Month+krok) {
Clock.setMonth(Month+krok);
krok=0;
}
break;
case 4:
if(DoW != DoW+krok) {
Clock.setDoW(DoW+krok);
krok=0;
}
break;
case 5:
if(Hour != Hour+krok) {
Clock.setHour(Hour+krok);
krok=0;
}
break;
case 6:
if(Minute != Minute+krok) {
Clock.setMinute(Minute+krok);
//Clock.setSecond(0);
krok=0;
}
break;
default:
Clock.setSecond(0); //vynulovani sekund pro nastaveni presneho casu.
Set=1; // Pripravi menu nastaveni na zacatek
mod=0; // menu nastaveni tlaku vody
LCD.clear();
}
if (EnterFlag == true) {
LCD.clear();
EnterFlag=false;
}
}
//--------------------------------------------------------------
// Nastaveni tlaku vody
//--------------------------------------------------------------
void pressSetup() {
byte col[]={0,0,0};
byte row[]={0,1,2};
String val[]={"Nastaveni spin.tlaku",(String)"Pri " + ((float)HiPress /10) + " Bar Vypne ",
(String)"Pri " + ((float)LoPress /10) + " Bar Zapne "};
Display(3,col,row,val);
switch(Set) {
case 1:
//LoPress=EEPROM.read(10);
HiPress=(EEPROM.read(11)+krok);
if(HiPress > 50) {
HiPress=50;
krok--;
}
else if(HiPress < LoPress+10) {
HiPress=(LoPress+10);
krok++;
}
break;
case 2:
LoPress=(EEPROM.read(10)+krok);
if(LoPress < 20) {
LoPress=20;
krok++;
}
else if(LoPress > HiPress-10) {
LoPress=(HiPress-10);
krok--;
}
break;
default:
EEPROM.update(11, HiPress);
EEPROM.update(10, LoPress);
krok=0;
Set=1;
mod=0;
}
if(EnterFlag == true) {
krok=0;
LCD.clear();
EnterFlag=false;
}
/* byte col[]={0,0,0};
byte row[]={0,1,2};
String val[]={"Nastaveni cerpadla",(String)"Pri " + ((float)HiPress /10) + " Bar Vypne ",
(String)"Pri " + ((float)LoPress /10) + " Bar Zapne "};
//Serial.println(val[1]);
Display(3,col,row,val);*/
}