ciclare in background

Non me ne ero neanche accorto perché i 10K li ho passati rispondendo in un altro thread XD XD XD

ehi, io ho passato quota 6000, si festeggia tutti stasera

Auguri anche a te, Mike... 6000 post sono anch'essi un traguardo di tutto rispetto. :wink:

dalubar:

ehi, io ho passato quota 6000, si festeggia tutti stasera

Auguri anche a te, Mike... 6000 post sono anch'essi un traguardo di tutto rispetto. :wink:

già 16000 minchiate in due sembrano un clock espresso in KHz :smiley:

SUPER ROTFL :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Bellissima questa! XD XD

Chissà cosa starà pensando l'autore del Topic, che si è visto trasformare una semplice domanda in un comitato dei festeggiamenti "pro veterani" del forum :sweat_smile:

E' qui la festa ???

dalubar:
Bellissima questa! XD XD

Chissà cosa starà pensando l'autore del Topic, che si è visto trasformare una semplice domanda in un comitato dei festeggiamenti "pro veterani" del forum :sweat_smile:

beh, i suggerimenti li ha avuti, poi non è più tornato e ha lasciato la porta aperta :smiley:

@ brunello: no, ci siamo spostati sul Topic onorario aperto da Uwe per Leo :smiley:

dalubar:
Bellissima questa! XD XD

Chissà cosa starà pensando l'autore del Topic, che si è visto trasformare una semplice domanda in un comitato dei festeggiamenti "pro veterani" del forum :sweat_smile:

aahuaauhahu :slight_smile: come vi siete permessi di festeggiare in casa mia in mia assenza??! :slight_smile: :slight_smile:

ad ogni modo, ho provato la tecnica che mi avete suggerito e ho una domanda:
la funzione millis() sicuramente non è adatta al funzionamento "in continuo" perchè se l'apparecchio è acceso 24h su 24h prima o poi andrà in overflow! pensate sia possibile utilizzare a tale scopo l'rtc (ds1307) che ho collegato all'arduino?
tra le altre cose non so perchè ma l'rtc (adafruit) mi porta sempre 4 minuti di ritardo rispetto al pc, anche subito dopo averlo impostato con apposita funzione! come è possibile?

e un'altra cosa:
ho preso anche un display, sempre dell'adafuit (cod. 417), munito di pulsantiera e vorrei creare un menù constestuale navigabile per settare, eventualmente, l'ora o piuttosto modificare dei valori: ovviamente vorrei , mentre interagisco, che tutto il resto funzioni (controllo pulsanti, sonde, pwm dei led...) pensate sia fattibile?

thanks

La funzione millis() fa in overflow dopo 49,7 giorni. Se hai un RTC esterno puoi semplicemente leggere i secondi e fare un ciclo basato sul cambio di questi. L'intervallo di 1s ti basta?

4 minuti fissi oppure uno scarto che poi cresce? Mi spiego, se imposti l'ora, vedi subito che ci sono 4 minuti di scarto ma poi restano 4 minuti anche dopo 1 giorno oppure lentamente lo scarto aumenta?

Il menu contestuale è sicuramente fattibile ma non è facile da scrivere: non so se sei alle prime armi. Ti conviene vedere se loro hanno un esempio e poi elaborare il tuo partendo da quello.

lo scarto sembra costante: non ho fatto misure precise! c'è qualche misura che posso fare per accorgermi se guadagna secondi?

per il menu contestuale non hanno esempi, quindi se mi potessi consigliare qualcosa te ne sarei grato!

il millis() l'ho sostituito con un confronto tra abs(now.second()-prev)>=1
e dovrebbe andare bene sempre e cmq...

Stiamo parlando di un orario impostato tramite un'interfaccia oppure dello sketch compilato con le costanti DATE e TIME?
Queste prendono semplicemente l'orario di sistema e lo memorizzano nello sketch. Se resettassi il tuo circuito fra 1 mese, ripartirebbe con l'orario e la data in cui hai compilato il programma.

Di esempi ce ne sono diversi. Io ho questo shield:
http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=12
Nella pagina puoi scaricare uno ZIP contenente la libreria ed uno sketch di esempio, dovrebbe fare al caso tuo.

zioTonino:
il millis() l'ho sostituito con un confronto tra abs(now.second()-prev)>=1
e dovrebbe andare bene sempre e cmq...

Puoi fare un semplice

if (now.second()!=prev) {
prev=now.second();
....
}
Se devi misurare solo 1 secondo, a te basta sapere che i secondi sono cambiati.

leo72:
Stiamo parlando di un orario impostato tramite un'interfaccia oppure dello sketch compilato con le costanti DATE e TIME?
Queste prendono semplicemente l'orario di sistema e lo memorizzano nello sketch. Se resettassi il tuo circuito fra 1 mese, ripartirebbe con l'orario e la data in cui hai compilato il programma.

Di esempi ce ne sono diversi. Io ho questo shield:
http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=12
Nella pagina puoi scaricare uno ZIP contenente la libreria ed uno sketch di esempio, dovrebbe fare al caso tuo.

ciao, vado con le costanti date e time!
per il menu grazie... ma sembra molto più complesso di quel che pensavo...

zioTonino:
ciao, vado con le costanti date e time!

Quindi non fai altro che memorizzare nello sketch l'orario del computer al momento della compilazione. E' normale che resettando l'Arduino lo sketch riparta con l'orario preimpostato.

per il menu grazie... ma sembra molto più complesso di quel che pensavo...

Eh, i menu non sono semplici.

si ma a compilare ci mette 30 secondi .. non 4 minuti!

E allora ricontrolla il tuo codice per vedere se alteri tu l'orario da qualche parte. Di più non so dirti. DATE e TIME prendono l'orario dal tuo sistema.

ho rincontrollato ma rimane 4 minuti! -.-"

potrei inserirlo io al posto di utilizzare le costanti? se si come?

per i menu, non esiste qualche esepio più "semplice"?

Certo che puoi, invece di mettere un TIME ci metti l'orario che vuoi.

e come? non riesco a capire il formato con cui inserirli sia il time che la data..

Guarda il formato che accetta la chiamata che imposta l'orario della libreria che stai usando.