Funzione Setup e loop

Mi serve aiuto per inserire una funzione che accetti valori da una seriale
Non riesco a capire dove inserirla
Deve essere eseguita solo all'avvio e se non serve deve saltare ( salto con Mills dopo 30 secondi proseguo ) , ho scritto una funzioncina stupida di test , se la metto nel loop funziona ma viene richiamata sempre, in Setup una sola volta , mi manca di lasciarla fuori da tutto :slight_smile:
Grazie

Non è che ti spieghi molto bene, qui nel forum siamo abituati che la cosa più difficile è capire le domande piuttosto che dare la soluzione :slight_smile:

Comunque quello che ho capito, una funzione deve essere eseguita a inizio programma, e quindi va richiamata nel void setup(), si può attendere anche 30 secondi, ma per dare una soluzione bisogna sapere cosa fa la funzione o cosa deve fare il codice.
Di solito con if(serial.available) è sufficiente, se ci sono dati "fai" se non ci sono dati "prosegui", in alternativa puoi aspettare 30 secondi in un ciclo while, se qualcuno invia dati da seriale.

Spiegati meglio e posta un po di codice... :wink:

alessanddrob:
mi manca di lasciarla fuori da tutto :slight_smile:
Grazie

Se la lasci fuori da tutto a che serve ?

Secondo me la ricezione di dati seriali va messo nel loop() con una temporizzazione che dopo 30 secondi non va piú chiamata.
Se metti nel setup non puoi fare niente nei 30 secondi oppure devi scrivere le il programma in doppio, nel setup e nel loop.

Ciao Uwe

Vedrò se riesco a farlo avviare una sola volta in setup ma mi pare di averlo provato ,
In pratica vorrei aggiornare la password del wifi all'avvio , se non è stata inizializzata , ma questa funzione non riesco a collocarla nel posto giusto

… perche’ non la inserisci in un if condizionato dal tempo ? …

intendo dire … all’inizio leggi millis, e la tua funzione la metti dentro un’if, facendo in modo che l’if venga eseguito solo se non sono ancora passati i 30 secondi … dopo i 30 secondi, smetti di eseguire l’if, e la funzione non viene piu eseguita …

o intendi un’altra cosa ?