Richiesta aiuto progetto controllo clima grow box automatizzata

Se ti basta aggiornare il display ogni 2 secondi, metti anche i comandi del display nell'if (in questo modo e' vero che hai l'aggiornamento della visualizzazione solo ogni 2 secondi, quando leggi i sensori ... pero' e' anche vero che non ti serve a nulla aggiornarlo piu spesso, dato che i sensori, appunto, li leggi solo ogni 2 secondi ... ;))

io gli ho suggerito di creare, per l'aggiornamento del display, un secondo if con millis() e con altra condizione per verificare che nessun "tasto menu" sia stato premuto...

Ah, gia, ci sono anche i menu' (mi ero distratto :P) ... allora puoi fare una funzione che contenga tutti i comandi di aggiornamento dell'LCD, e richiamarla sia da dentro l'if che ogni volta che preme (o ancora meglio rilascia) un pulsante ... cosi si aggiorna ogni lettura dei sensori, e anche ogni volta che si preme un pulsante ... :wink:

Sto provando e riprovando a creare un menu per gestire le 4 variabili... ma non riesco ad andare oltre la seconda pagina del menu. :disappointed_relieved: :disappointed_relieved:
ma ce la farö ;D
appena riesco posto il codice.

in rete ho trovato questo sketch:

vorrei integrarlo nel mio progetto iniziale (ho già provato a fare qualche modifica), ma non sto capendo come permettere di entrare e uscire questo menu stando sulla schermata principale (dove mi visualizza temp e umiditä)

questo invece é lo sketch con le prime modifiche

Ormai ho la testa in palla e non sto trovando una via d'uscita. Qualcuno puö darmi qualche consiglio?

Gracias

diegohaze:
in rete ho trovato questo sketch:
menu lcd or - Pastebin.com

vorrei integrarlo nel mio progetto iniziale (ho già provato a fare qualche modifica), ma non sto capendo come permettere di entrare e uscire questo menu stando sulla schermata principale (dove mi visualizza temp e umiditä)

questo invece é lo sketch con le prime modifiche
menu item - Pastebin.com

Ormai ho la testa in palla e non sto trovando una via d'uscita. Qualcuno puö darmi qualche consiglio?

Gracias

qualcosa tipo

int Attivamenu= 0

while (Attivamenu==0)

if (pulsante select é premuto)

{entra nel menu};

if (pulsante left viene premuto)

{Attivamenu=0;
 torna alla schermata principale
};

Da "nonprogrammatore", vedo comunque una cosa potenzialmente errata in quella sequenza ... quel while, in teoria, ti rimane bloccato in se stesso finche' la variabile Attivamenu e' zero, ma dato che l'hai settata a zero e dentro il while non fai letture di ingressi, credo che si bloccherebbe li in eterno ... :wink:

Etemenanki:
Da "nonprogrammatore", vedo comunque una cosa potenzialmente errata in quella sequenza ... quel while, in teoria, ti rimane bloccato in se stesso finche' la variabile Attivamenu e' zero, ma dato che l'hai settata a zero e dentro il while non fai letture di ingressi, credo che si bloccherebbe li in eterno ... :wink:

ho cambiato anche in questo modo

void PageHome() {
  int AttivaMenu;
  AttivaMenu=0;
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temp);
  lcd.print(" ");
  lcd.print((char)223);
  lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print("Hum:  ");
  lcd.print(hum);
  lcd.print(" %");
  if (analogRead(0)>790){
    AttivaMenu=1;
  }
  while(AttivaMenu==1)
  if(analogRead(0)<50)
  {
    mainMenuDraw();
  
  drawCursor();
  operateMainMenu();
  AttivaMenu=0;
  }
  else{
    AttivaMenu=1;
  }
}

forse ormai sono impallato e non riesco a trovare una via d'uscita!