funzioni di tempo

ciao a tutti
scusate sono nuovo nel forum e sto studiando arduino da qualche settimana, sono un elettronico ma capisco poco di linguaggio C. ho iniziato a studiare arduino e mi sta intrippando molto. qualcuno mi sa dire se esisitono delle funzioni in modo che si possa avere un uscita che va a 1 nel caso un'ingresso analogico non raggiunge un certo valore X di tensione entro 10 minuti ad esempio?
esempio
pin 0 analogico ingresso
pin 2 digitale uscita
se il pin 0 non raggiunge il valore 2,5 volt entro 10 minuti, il pin 2 normalmente L, va a H.
se mi aiutate mi fate un piacere, sono molto ignorante in linguaggi di programmazione.
grazie

Ciao Francu, hai a disposizione due funzioni micros() e millis().
Entrambe ritornano un il valore di un contatore incrementato ogni micro o milli secondo, quindi dovresti procedere così:
salvi il valore del timer; start_time = millis();

poi nel loop fai un controllo con if, simile a questo:
if (millis() - start_time >= tuo_tempo_in_millisecondi)
{
// qui iserisci il tuo codice per manipolere le porte
}
else // altrimenti fai questo
{
// fai qualcosaltro in attesa che arrivi il tempo
}
C'e solo un problema a lungo termine, il contatore interno al timer va in overflow dopo 70 giorni circa, e questo potrebbe dare problemi.

Ciao.

ti ringrazio tantissimo Mauro per la tempestività, stasera proverò a fare qualche prova sperando di aver capito bene.
grazie ancora
ciao

Mi pare sui 40 giorni, non 70. Il contatore poi riparte da 0. Per cui se becchi una misura sul riavvio del contatore, il successivo stop lo hai dopo 40 giorni :grin:

ma tanto è solo questione di 15 min.
ma il timer posso farlo partire in un momento particolare del programma?
io ho 2 ingressi analogici che variano in continuazione tra 0 e 5 volt, tramite due sensori di pressione, se dovessero rimanere per 15 min sotto 1 volt, o uno o l'altro, un uscita digitale va a 1 (allarme)
nel caso che mi hai descritto prima, il timer parte al momento dell'accensione giusto?
grazie

il timer parte quando alimenti arduino.
ogni volta che un pulsante viene premuto leggi il tempo attuale del timer. ogni loop controlli che il tempo salvato + 15 minuti non sia minore del tempo attuale: se lo è fai partire l'allarme.
Però fai attenzione, perchè in questo caso devi gestire l'overflow del timer (ovvero che si azzera ogni tot), se la tua applicazione sta accesa per più giorni