Interruzione codice dopo valutazione

Vi chiedo subito di perdonarmi per l'oggetto poco chiaro ma non sapevo come poter esprimere il mio problema.

Allora: Ho un display LCD 16x2 e tre sensori di tipo DHT11 temperatura e umidità. Il progetto è posto in macchina un sensore legge la temperatura esterna e un altro quella interna e altro. Sul display vorrei visualizzare la temperatura e l'umidità letta da un sensore e poter switchare la lettura con la semplice pressione di un o due pulsanti. Quindi volevo chiedervi quale sarebbe il modo più appropriato per farlo?

Per selezionare il sensore utilizzo i pulsanti per incrementare o decrementare il valore di un contatore. in base al valore del contatore i dati verranno letti dalla sensore 1 o 2 o 3.

Il problema però sta nel fatto che nel ciclo loop metto un delay di circa 30 secondi dove la scheda va a rileggere i dati ogni 30 secondi come potrei fare per far si che alla pressione di un tasto il delay venga interrotto e quindi prosegua con il codice, così da leggere i valori forniti?

Grazie a tutti per il vostro aiuto

come potrei fare per far si che alla pressione di un tasto il delay venga interrotto

il delay() è bloccante e quindi non interrompibile

Al suo posto devi usare il millis(), leggiti questo articolo

http://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/

Facendo qualche ricerca ho notato che potrei utilizzare gli interrupt collegando i due pulsanti di controllo ai pin 2 e 3.

Potrebbe essere questa un'opzione?

Si, per complicarti la vita.

Guarda che usare la millis() non è cosi’ difficile, se posti il tuo scketch possiamo darti una mano.

Oppure puoi usare una libreria apposita. ad esempio

Timer
o
Metro

ciao

Spiegazione stupida sulla differenza tra delay e millis con una similitudine:
stai giocando a nascondino e tu sei quello che deve contare; devi contare per 30 secondi ma nel frattempo vorresti anche dare un’occhiata al cellulare se sono arrivati messaggi. Con te ci sono due altri amici: Delay e Millis. Naturalmente noi maschi (avendo un solo neurone :grin: ) possiamo fare solo una cosa alla volta. Delay è un tipo un po’ bastardo: se gli chiedi di contare pretende che tu stia li fermo ad ascoltarlo, non puoi fare nient’altro. Millis invece è uno che passa il tempo a contare tra sè e sè ma non ti dice mai quanto tempo è passato se non sei tu a chiederglielo.
Facendoti aiutare da Millis puoi fare così: cominci chiedendogli a che numero è arrivato (infatti in “bastardo” ha già cominciato a contare) e te lo segni; a quel punto guardi se sono arrivati messaggi, poi richiedi a millis a che punto è e te lo segni, fai un breve calcolo e, se sono passati i 30 secondi riprendi a giocare a nascondino altrimenti puoi ricontrollare se sono arrivati messaggi nel telefono, poi chiedi a Millis ecc.

Se non ho aumentato la paura verso millis…

ciao
pippo72

Ok vi ringrazio per le varie soluzioni ora faccio qualche prova ed eventualmente posto il problema diretto.

Grazie comunque per le info. "Perdonatemi sono all'inizio" :grin: