time lapse, modificare tempo di attesa con dei tasti

ciao a tutti, sto programmando il mio dispositivo per il time lapse, il dispositivo, aziona il tasto della fotocamera tramite un servo, vi descrivo il circuito

LCD INPUT OUTPUT

rs pin D6 punsante + pin A1 led_temporizzato D11 e pin D5 punsante - pin A2 servo A5 D4 pin D3 punsante ok pin A3 D5 pin D2 ricevitore IR pin A4 D6 pin D1 D7 pin D0

i collegamenti del lcd sono strani perchè l' ho gia saldato in stand alone, e mi trovavo piu comodo con quella disposizione, per comodità, invece di usare un servo, userò almeno in fase di programmazione un led, che si illuminera quando il servo dovrebbe essere nella posizione in cui preme il pulsante.

ecco cosa voglio fare:

accendo arduino, legge la variabile "tempo", e aziona il servo ogni tot secondi, e il led_temporizzato deve funzionare ad intermittenza, accelerando la frequanza fino all ultimo secondo, in cui rimarrà acceso per 1s. devo poter modificare il tempo anche con un telecomando(ma questa non è la priorità),ed entrando in modalità scatto remoto, scattare con un tasto del telecomando, senza tenr conto del tempo di pausa

con i pulsanti + e - modifico la variabile "pausa", premendo ok, la variabile "tempo" diventa uguale a "pausa" e ovviamente il il servo viene attivato con la nuova varibile

il problema, è che se uso delay, non si riesce a leggere i tasti, e quindi la varibile non si aggiorna.

questo è il codice che ho scritto per gestire lì lcd, e i tasti, anche se c'è un picoclo bug, quando decremento la variabile, e questa passa da 3 a 2 cifre, oppure da 2 ad 1 cifra, le cifre delle unità non scompaiono dallo schermo esempio:

sono a 10, premo il tasto - la variabile diventa 9, ma sullo schermo visualizza 90, perche non cancella la seconda cifra del 10, come faccio a riolvere?

ecco il codice:

http://asnabprova.altervista.org/lcd_intervallometro.ino

il codice non risco a caricarlo perche il messaggio supererebbe i 9500 caratteri...

mi scuso per la pubblicazione incompleta ma c'è stato un problema di connessione

Forse ti manca un pezzo :P

sciorty: Forse ti manca un pezzo :P

si schiacciando tab mentre scrivevo, sono andato sul pulsante post, invece che dare piu spazio.. :D

Non ho capito bene il tuo problema comunque se può esserti d'aiuto dai un'occhiata al codice che ho usato qui http://forum.arduino.cc/index.php?topic=123866.0

in pratica, senza giri di parole, quando faccio il delay, non mi legge piu i tasti… come faccio a leggerli sempre?

Con la millis()! Ma vedo che l'hai già usata nel codice, quindi dovresti già conoscerla..

sciorty: Con la millis()! Ma vedo che l'hai già usata nel codice, quindi dovresti già conoscerla..

a dire il vero il codice per gestire i tasti, l' ho trovato, visto che va bene ho preferito non riscriverlo... conosco la funzione millis().. ma sinceramente non mi era proprio venuto in mente di usarla... mi serve proprio una vacanza lontano da tutto...

riacquisendo la sanità mentale sono riuscito a far funzionare il tutto.. ora ho solo 2 problemini..

1 vorrei fare un conto alla rovescia che parta dalla variabile lapse, e arrivi a zero 2 vorrei fare in modo che un led lampeggi accelerando man mano che il conto alla rovescia si avvicini allo zero es: finche il conto alla rovescia è maggiore di 10, il led resta acceso mezzo secondo, e spento 1 secondo, per poi lampeggiare ogni mezzo secondo fino all ultimo secondo in cui resta acceso.

il punto 2 è facile da fare, ma il conto alla rovescia nonmi esce proprio...

ho porvato a fare for(int i = ContoAllaRovescia; i > 0; i--){ if(currentMillis - previousMillis = 1000) { previousMillis = currentMillis; lcd.print(i); }

ma non credo che sia il metodo giusto.. comunque se volete darci un occhiata eccovi il codice: http://asnabprova.altervista.org/lcd_intervallometro.ino

qualcuno potrebbe provare il mio codice? non so se si tratta di un bug, del processore che da i numeri, di arduino che da i numeri, o del fantasma che infesta la mia stanza... ma lasciando acceso il sistema, la variabile pausa, e di conseguenza anche le altre connesse in qualche modo al suo valore, ha delle variazioni, come se qualcuno premesse i tasti, queste variazioni possono essere di 1, o piu unitò, e dopo aver scattato 400 foto, la variabile è passata da 10 a 22, appena acceso, sembra non avere problemi che si verificano solo dopo qualche minuto.

purtoppo non posso provare con l' altro atmega che ho, perchè a quanto pare è morto, e non funziona niente

trovate qui il codice http://asnabprova.altervista.org/lcd_intervallometro.ino

milvusmilvus:
qualcuno potrebbe provare il mio codice? non so se si tratta di un bug, del processore che da i numeri, di arduino che da i numeri, o del fantasma che infesta la mia stanza… ma lasciando acceso il sistema, la variabile pausa, e di conseguenza anche le altre connesse in qualche modo al suo valore, ha delle variazioni, come se qualcuno premesse i tasti, queste variazioni possono essere di 1, o piu unitò, e dopo aver scattato 400 foto, la variabile è passata da 10 a 22, appena acceso, sembra non avere problemi che si verificano solo dopo qualche minuto.

purtoppo non posso provare con l’ altro atmega che ho, perchè a quanto pare è morto, e non funziona niente

trovate qui il codice http://asnabprova.altervista.org/lcd_intervallometro.ino

risolto, dipendeva dal fatto che non avevo messo le resistenze sui tasti sulla breadboard