//============================BLOCCO GESTIONE DATA====================================
void menu3 ()
{
lcd.setCursor(0,0);
lcd.print(" DATA ");
lcd.setCursor(3,1);
if(giorno < 10) //Quando il numero è ad una sola cifra devo aggiungere uno spazio per mantenere il testo che viene dopo nella stessa posizione
lcd.print("0");
lcd.print(giorno);
lcd.setCursor(5,1);
lcd.print("/");
lcd.setCursor(6,1); //Scrivo la temperatura che sto impostando
if(mese < 10) //Quando il numero è ad una sola cifra devo aggiungere uno spazio per mantenere il testo che viene dopo nella stessa posizione
lcd.print("0");
lcd.print(mese);
lcd.setCursor(8,1);
lcd.print("/");
lcd.setCursor(9,1);
lcd.print(anno);
lcd.setCursor(-4,2);
lcd.print(" ");
lcd.setCursor(-4,3);
lcd.print(" SET ");
if(enter == HIGH && millis() - tempo_btn > debounce)
{
tempo_btn = millis();
lcd.clear();
cont_pag = 31;
}
}
void menu31 ()
{
lcd.setCursor(0,0);
lcd.print("GIORNO:");
lcd.setCursor(7,0);
if(giorno < 10) //Quando il numero è ad una sola cifra devo aggiungere uno spazio per mantenere il testo che viene dopo nella stessa posizione
lcd.print("0");
lcd.print(giorno);
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(-4,2);
lcd.print(" ");
lcd.setCursor(-4,3);
lcd.print(" SET ");
//Abilita l'ingresso in modalita' configurazione
n_piu = 0;
n_meno = 0;
//Abilita i tasti "piu" e "meno" in modalita' incremento/decremento
piu_set = digitalRead(PIU);
meno_set = digitalRead(MENO);
if(piu_set == HIGH && millis() - tempo_btn > debounce) //Incremento "variabile" se premo tasto "piu"
{
tempo_btn = millis();
n_piu++;
piu_set = !piu_set;
if( giorno < 31 )
giorno++;
}
if(meno_set == HIGH && millis() - tempo_btn > debounce) //Decremento "variabile" se premo tasto "meno"
{
tempo_btn = millis();
n_meno++;
meno_set = !meno_set;
if( giorno > 0 )
giorno--;
}
if(enter == HIGH && millis() - tempo_btn > debounce)
{
tempo_btn = millis();
lcd.clear();
cont_pag = 32;
}
}
void menu32 ()
{
lcd.setCursor(0,0);
lcd.print("MESE:");
lcd.setCursor(5,0);
if(mese < 10) //Quando il numero è ad una sola cifra devo aggiungere uno spazio per mantenere il testo che viene dopo nella stessa posizione
lcd.print("0");
lcd.print(mese);
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(-4,2);
lcd.print(" ");
lcd.setCursor(-4,3);
lcd.print(" SET ");
//Abilita l'ingresso in modalita' configurazione
n_piu = 0;
n_meno = 0;
//Abilita i tasti "piu" e "meno" in modalita' incremento/decremento
piu_set = digitalRead(PIU);
meno_set = digitalRead(MENO);
if(piu_set == HIGH && millis() - tempo_btn > debounce) //Incremento "variabile" se premo tasto "piu"
{
tempo_btn = millis();
n_piu++;
piu_set = !piu_set;
if( mese < 12 )
mese++;
}
if(meno_set == HIGH && millis() - tempo_btn > debounce) //Decremento "variabile" se premo tasto "meno"
{
tempo_btn = millis();
n_meno++;
meno_set = !meno_set;
if( mese > 0 )
mese--;
}
if(enter == HIGH && millis() - tempo_btn > debounce)
{
tempo_btn = millis();
lcd.clear();
cont_pag = 33;
}
}
void menu33 ()
{
lcd.setCursor(0,0);
lcd.print("ANNO:");
lcd.setCursor(5,0);
lcd.print(anno);
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(-4,2);
lcd.print(" ");
lcd.setCursor(-4,3);
lcd.print(" SET ");
//Abilita l'ingresso in modalita' configurazione
n_piu = 0;
n_meno = 0;
//Abilita i tasti "piu" e "meno" in modalita' incremento/decremento
piu_set = digitalRead(PIU);
meno_set = digitalRead(MENO);
if(piu_set == HIGH && millis() - tempo_btn > debounce) //Incremento "variabile" se premo tasto "piu"
{
tempo_btn = millis();
n_piu++;
piu_set = !piu_set;
if( anno < 3000 )
anno++;
}
if(meno_set == HIGH && millis() - tempo_btn > debounce) //Decremento "variabile" se premo tasto "meno"
{
tempo_btn = millis();
n_meno++;
meno_set = !meno_set;
if( anno > 2012 )
anno--;
}
if(enter == HIGH && millis() - tempo_btn > debounce)
{
tempo_btn = millis();
lcd.clear();
lcd.setCursor(3,1);
if(giorno < 10) //Quando il numero è ad una sola cifra devo aggiungere uno spazio per mantenere il testo che viene dopo nella stessa posizione
lcd.print("0");
lcd.print(giorno);
lcd.setCursor(5,1);
lcd.print("/");
lcd.setCursor(6,1); //Scrivo la temperatura che sto impostando
if(mese < 10) //Quando il numero è ad una sola cifra devo aggiungere uno spazio per mantenere il testo che viene dopo nella stessa posizione
lcd.print("0");
lcd.print(mese);
lcd.setCursor(8,1);
lcd.print("/");
lcd.setCursor(9,1);
lcd.print(anno);
delay(1500);
lcd.clear();
cont_pag = 0;
}
}
void loop()
{
//Lettura dello stato di tutti i pulsanti
if(set == LOW)
{
piu = digitalRead(PIU);
meno = digitalRead(MENO);
}
enter = digitalRead(ENTER);
esc = digitalRead(ESC);
//Se premo PIU incremento di uno il contatore pagine
if(piu == HIGH && millis() - tempo_btn > debounce && cont_pag >= 0 && cont_pag < 3)
{
tempo_btn = millis();
cont_pag++;
if(cont_pag == 3)
cont_pag = 0;
}
//Se premo MENO decremento il contatore pagine
if(meno == HIGH && millis() - tempo_btn > debounce && cont_pag > 0 && cont_pag < 3)
{
tempo_btn = millis();
cont_pag--;
}
//Se premo ESC torno alla schermata Home uscendo anche da tutti i sottomenu
if(esc == HIGH && millis() - tempo_btn > debounce) //Quando premo "esc" torno alla schermata HOME
{
tempo_btn = millis();
cont_pag = 0;
set = LOW;
}
switch (cont_pag)
{
case 0:
menu1();
break;
case 1:
menu2();
break;
//============MENU 2===============
case 21:
menu21();
break;
case 22:
menu22();
break;
//=============MENU 3===============
case 2:
menu3();
break;
case 31:
menu31();
break;
case 32:
menu32();
break;
case 33:
menu33();
break;
} // switch
} // loop
Grazie a tutti