Come gestire lcd tastiera e streaming seriale senza bloccare nessuno dei tre

Non so come affrontare la stesura di un software sicuramente la questione é banale ma sto controllando con arduino un lcd 128x64 tastiera 4x4 e raccolta di vari sensori da inviare in seriale a un visualizzatore in processing.

Arduino ha normalmente void loop dove ciclicamente viene ripetuto il ciclo di informazioni in maniera sequenziale e ciclica, bene il mio problema é questo, se io ho il ciclo che mi manda in seriale i dati e voglio creare un altro ciclo che mi stampa su schermo qualcosa e controllare con la tastiera il monitor nei vari menu come faccio a scrivere il software senza che questo mi interrompa l'invio in seriale.

Detta in maniera semplice se io metto un ritardo di 20ms come antirimbalzo come faccio a far si che il ciclo che legge gli analog e li manda in seriale non risenta del ritardo essendo tutti e due in loop?

Se poi metto un ritardo di 1 secondo a disegnare un oggetto su display diventa ancora peggio!

Esiste il multitasking i qualcosa di simile per fare queste cose o come si fa?

Grazie

Come gestire lcd tastiera e streaming seriale senza bloccare nessuno dei tre

Non é possibile. Ognuna delle tre cose hanno bisogno di tempo e in quel tempo le altre 2 cose non vengono fatte. L' unica cosa é fare in modo che nessuna delle 3 cose freni in modo significativo le altre 2.

uno dei trucchi é non usare delay ma millis()

Arduino non sa il multitasking. Il controller elabora sempre 1 codice e non piú in paralello.

Ciao Uwe

lalogt:
Esiste il multitasking i qualcosa di simile per fare queste cose o come si fa?

No, non esiste e te lo devi simulare da solo.

Come ti ha detto Uwe, impara ad usare la millis() … studia prima di tutto QUI, poi QUI ed infine, dai una letta anche QUI

Guglielmo

Molto bene quello che cercavo, avevo solo bisogno di essere indirizzato verso la strada giusta. Se non sbaglio questa funzione equivale all'interrupt che usavo in assebly nella programmazione dei freescale/motorola e pic.

Grazie mille avevo bisogno di questo!!!

Grazie

lalogt: Molto bene quello che cercavo, avevo solo bisogno di essere indirizzato verso la strada giusta. Se non sbaglio questa funzione equivale all'interrupt che usavo in assebly nella programmazione dei freescale/motorola e pic.

Grazie mille avevo bisogno di questo!!!

Grazie

no, millis é una funzione che Ti ritorna i millisecondi da quando hai acceso Arduino.

Ciao Uwe