cambiare switch case

buon giorno a tutti, sto cercando di imparare arduino, qualcosa sono riuscito a fare ma ora sono fermo ad un grosso problema per me,
io ho fatto dei vari switch case per visualizzare varie informazioni su un lcd.
qui non ho problemi.
io vorrei che quando voltage <= V_min vada in page 5, ed per evitare che venga scritto in continuazione ho messo one_shot_ricarica che una volta entrato nell if diventa falsa e non viene piu' considerata, fino a quando , passato il tempo richiesto viene nuovamente cambiata e messa vera.

una volta che la scritta e' visualizzata dopo tot tempo ritorna alla page 0
e corretto come listato grazie mille!!

if ( voltage <= V_min && one_shot_ricarica == true ) {
shot_ricarica  = true ; 

page = 5;
time_ricarica = millis();
one_shot_ricarica  = false ; 
}


if (millis() - time_ricarica > tempo_ricarica_lcd) {//intervallo scritta
if (shot_ricarica == true) {
page = 0;

shot_ricarica  = false ; 
}
}
if (millis() - lettura > 15000) {
lettura = millis();
one_shot_ricarica  = true;
}

Se stai chiedendo se il listato sia corretto significa che qualcosa non ti funziona?

Comunque sia, devi iniziare ad imparare ad indentare bene il codice. Non per questioni "estetiche" ma perché se non lo fai ti troverai tu stesso a non riuscire a "vedere" bene come sia strutturato il programma 8oltre a renderlo difficile anche per noi...). Premi Ctrl-T nell'IDE e te lo indenta lui in automatico, poi da quel momento cerca di mantenere quella formattazione.

Inoltre, sempre come consiglio generale, metti anche i commenti dove spieghi cosa stai facendo in quel punto: nuovamente, questo serve sia a te stesso per strutturare bene il docice (a volte si inizia proprio scrivendo SOLO commenti, per poi inserire sotto ad ogni commento le istruzioni che eseguono quanto scritto) sia per ricordarti anche in seguito come hai fatto certe cose (se riprendi un programma dopo un anno sei certo di ricordare tutto?), e serve anche a noi per cercare di capire cosa volevi fare (e quindi confrontarlo con quello che vediamo che le istruzioni dovrebbero fare).

Poi quando c'è qualcosa che sembra non andare, si usa in genere fare debug tramite messaggi da mandare sulla seriale (ad esempio per scrivere in quale funzione è entrato il codice, o quale valore assume una certa variabile), cosa che ti consiglio sempre di prevedere. Ed il relativo output (insieme al "nuovo" codice che hai usato) potrebbe essere utile anche a noi, visto che non abbiamo fisicamente il tuo hardware.

Infine, parli di switch case ma in quello spezzone di codice non c'è alcuno switch...case. E' meglio in genere postare l'intero codice (anche per farci capire ad esempio come sono definite le variabili che qui usi) al limite indicando quale parte o funzione dobbiamo verificarti. O almeno la porzione di codice e le definizioni delle variabili/costanti.

Fallo quindi, e posta qui il codice, spiegando anche se c'è ancora qualcosa che non funziona.