Controllo ingresso analogico

Ciao ho iniziato da poco a lavorare con arduino.... dopo le classiche prove iniziali( ovvero accendere e spengere led e cosi via....), mi sono prefissato un obbiettivo ben preciso e per questo mi rivoglo a voi sperando nel vostro aiuto:

il programma è il seguente:

Dal pin analaogico 0 devo misurare una tensione di 5V(1023) se è continua, dopo 3 secondi(ipotetici) si deve accendere un led (es pin 13), se nei 3 secondi la tensione mi va a 0 e torna a 1023 si deve accendere un secondo led(es pin 12). come posso fare??? GRAZIE MILLE!!!! ;)

dai non mi sembra così complicato, sono solo due condizioni…

L’unica cosa un po’ ostica può essere la questione del tempo, guardati sul sito cioò che trovi cercando “millis”
e’ una funzione che ritorna i millisecondi da quando il microcontrollore è acceso.

Prova a pensarci su un po’ e a postare il tuo tentativo, che poi ti aiutiamo

Grazie inizialmente per la risposta.... ho tentato di utilizzare millis il problema è che non riesco a misurare lo stato dell'ingresso analogico per un determinato tempo...a quanto ho capito millis qst non lo fa, l'unica cosa che fa è quella, a differenza del delay, di non bloccare il programma.. dimmi se sbaglio?? ciao ciao ;)

ti segnalo un post http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1284460939/10#10 ciao

Se hai 5V e 0V come tensioni da controllare perché usi un entrata analogica? Per questo potresti usare anche una entrata digitale. Ciao Uwe

Si è meglio...altra domanda. esiste una libreria per la funzione sleep??

Per mettere il controller in modalitá sleep? Ciao Uwe

mi serve per vedere ogni secondo come si comporta l'uscita digitale e poi secondo come si presenta fare svolgere determinati controlli...

esiste una libreria metro http://www.arduino.cc/playground/Code/Metro che gestisce eventi ripetitivi nel tempo. Ciao Uwe

CIAO!!! grazie delle risposte ma ho provato a usare la libreria "metro" per aspettare un secondo, ma non fa!! Metto un pezzo di codice sperando nel vostro aiuto....

Metro serialMetro = Metro (1000); . . . . .

void loop() { val=digitalRead(VOLT);// legge il valore in ingresso Serial.print(val); if(val==1)// se è 1 incrementa il contatore x { x++; serialMetro.interval(1000); // aspetta un secondo if(x==2)// se ci sono due 1 dopo un secondo accende il led { x--; x--;

serialMetro.interval(1000); digitalWrite(LED,HIGH); Serial.print("ACCESO");

} } }