RTC

Purtroppo le schedine con il DS1307 non sono dei mostri di precisione.
Il tuo va' un po' peggio della media ( circa 3/5 sec al giorno ) e dipende dalla qualita' del quarzo e dalla temperatura d'uso.
A meno che tu non abbia anche un collegamento internet, con cui potresti regolare l'ora in NTP , l'unica soluzione e' quella di reimpostare l'ora periodicamente

... oppure, nei casi in cui serve veramente una certa precisione, invece di usare quel modulo, usare questo qui : ChronoDot - Ultra-precise Real Time Clock [v3] : ID 255 : $17.50 : Adafruit Industries, Unique & fun DIY electronics and kits che garantisce un errore nettamente inferiore (... the ChronoDot will drift less than a minute per year) !!!

Guglielmo

maniiu:
Si può correggere ogni giorno l'ora? Magari verificandone lo scostamento rispetto ai millis() di arduino, ma non so quanto precisa sia questa funzione... (l'idea è di lasciare sempre arduino alimentato, preservandolo solo dalle perdite estemporanee di corrente)

Peggio!
L'Arduino UNO usa un risonatore ceramico che ha un'imprecisione maggiore di diversi ordini di grandezza. Se vuoi accuratezza ma non hai modo di aggiornare l'ora in automatico ti serve un RTC compensato in temperatura come quello suggerito da Guglielmo.

Penso che la imprecisione non sia grave per l' uso che fai. Le piante mica stanno lí col cronometro in mano ad aspettare che vengano inaffiate. :wink: :wink: :wink:

Un segnale di tempo preciso puoi ricavare da un ricvitore GPS, GSM, WiFi (e internet e server NTS), segnale RDS della radio a onde ultracorte, segnale DCF77, dal Tuo PC...

Ciao Uwe

Grazia a tutti..
Almeno l'imprecisione sembra non dipendere da miei errori :slight_smile:
Che delusione però..
Allora procederò in questo modo..
Metto un bel lcd che mi visualizzi l'ora ed un pulsantino che mi fa andare avanti di un minuto l'ora impostata.. così mi rendo indipendente dal pc., quando vedo che la differenza è esagerata (oltre il limite di sopportazione delle piante :slight_smile: )
Cosa ne pensate?

Buona soluzione.

Ma a questo punto, visto che hai il LCD, azzarderei anche un menu per reimpostare l'ora. non solo per farlo scattare in avanti di qualche minuto. :wink:

già ma non ho i tasti nell'lcd...
ci penso su..
intanto devo far visualizzare l'ora.. secondo te l'arduino mi tiene in parallelo sui 5v l'RTC e l'LCD?

Si.

Per i collegamenti puoi fare riferimento a questi --> http://forum.arduino.cc/index.php/topic,146152.0.html

L'appetito vien mangiando...

Secondo voi è possibile alimentare l'lcd dai pin digitali? Così passati 30 secondi si può spegnere..
Ho trovato due tastini.. Pensavo di gestili così

  • uno come un "menu/avanti": se premuto accende l'lcd, se premuto per cinque secondi entra nelle impostazioni, poi va avanti nei menu, e sul settaggio ora.
  • l'altro come "indietro/salva": se premuto per cinque secondi salva le impostazioni, altrimenti torna indietro nei menu e sul settaggio dell'ora
    O mixando meglio i due..

Vi tengo aggiornati

maniiu:
L'appetito vien mangiando...

Secondo voi è possibile alimentare l'lcd dai pin digitali? Così passati 30 secondi si può spegnere..

Cattiva idea. Pilota l'alimentazione con un semplice transistor collegato ad un pin.

Ho trovato due tastini.. Pensavo di gestili così

  • uno come un "menu/avanti": se premuto accende l'lcd, se premuto per cinque secondi entra nelle impostazioni, poi va avanti nei menu, e sul settaggio ora.
  • l'altro come "indietro/salva": se premuto per cinque secondi salva le impostazioni, altrimenti torna indietro nei menu e sul settaggio dell'ora
    O mixando meglio i due..

Vi tengo aggiornati

Fattibilissimo. Su un vecchio progettino che ho realizzato (Micrologio) addirittura ho usato un solo pulsante per programmare l'ora e la data nonché le impostazioni dello stesso orologio :wink:

Ciao ancora,
allego lo schema del circuito.. (non ho riportato il carico sul rele)
Ho fatto errori?
(considerate il collegamento al pin 0 ed al pin 1 come una cosa di comodo.. in realtà non li collegherò a questi pin!)
Grazie ragazzi

Se usi la seriale, e comunque per non disturbare la programmazione del micro, non devi usare i pin 0 e 1. Lasciali liberi.

dubbio amletico..
Per comandare il relè uso un transistor Tip121 che avevo disponibile, è che ho calcolato andare bene..
ne ho un altro, secondo voi è adatto anche per alimentare il display attraverso un pin digitale ed i 5v? La resistenza in serie alla base di 1000 ohm dovrebbe andare bene... ?

TNK!!!

Secondo me è sovradimensionato ma va bene. La retroilluminazione di un LCD sarà sul centinaio di mA, 200 mA sui modelli più esosi come il mio 20x4 ( ]:D), molti meno sui 16x2 più piccoli e recenti. Controlla sul datasheet del tuo modello, casomai, e se ce l'hai in casa puoi usare un BC337 o un 2N2222. Ma anche un BC547 se stai sotto ai 100 mA.
La resistenza sulla base andrebbe calcolata sul consumo del display ma diciamo che in linea di max 1K va bene.

Bruciato Arduino!!!
:drooling_face: :drooling_face: :drooling_face:
Il led sul pin 13 sempre acceso, il pc non riconosce la connessione usb...credo di poterla incorniciare...
Qualcosa ho sbagliato.. inoltre mi ero accorto (prima di rompere tutto) che lo schema sopra non andava bene (emettitore collegato a +5V invece che a terra)..
Avrò fatto qualche corto...
Ho ordinato un'altra scheda.. ma prima di rompere anche questa, sareste tanto gentili da darmim il vostro giudizio sullo schema (che riallego corretto)..

Grazie

Ehhmmm lo schema non mi sembra chiaro in quanto le linee 12 e 5 v mi sembrano sovrapposte.

ahah
si hai ragione.. ma non avevo spazio.. considera i contatti sempre alla fine delle linee:
se la linea rossa finisce sul 5V è connesso ai 5v se finisce sui 12V è connessa ai 12V.
Di fatto ai 12V non è collegato nulla nello schema sopra..

Ma mi trovo che l'RTC perde costantemente una decina di secondi al giorno, che in sei mesi fa circa mezzora....
Tra le altre cose il collegamento è stato difficile.. (a volte andava a volte no..)

Potresti provare a modificare il valore dei condensatori (dovrebbero essere i condensatori C1 e C2).

Il datasheet del 1307 parla di una precisione relativa di 1 minuto/mese (2 s/giorno):

The frequency accuracy of a crystal-based oscillator circuit is mainly dependent upon the accuracy of the
crystal and the accuracy of the match between the crystal and the oscillator capacitive load. If the
capacitive load is less than the crystal was designed for, the oscillator runs fast. If the capacitive load is
greater than what the crystal was designed for, the oscillator runs slow.

Quindi per rimediare ad errori nell'accoppiamento (l'orologio va avanti, vero?) occorre aumentare la capacità di carico già presente nell'IC.

Questo si traduce nel mettere due condensatori in parallelo a quelli già presenti con un capo a massa e l'altro sui due capi del quarzo (il più vicino possibile a quarzo stesso).

Direi che 10 pF (o meno) possono andare bene: se fossero troppi (l'orologio rimane indietro) diminuisci a 4,7 pF.

Scusa cyberhs, ma il DS1307 non necessita di condensatori esterni.
Anche sul datasheet il circuito tipo non li prevede. Dici che servono comunque?

Caro Leo,

ho appena "litigato" con un schedino RTC con DS1307.

Prima 8.5 secondi in avanti dopo 24h, dopo aver inserito due condensatori da 22pf in parallelo a quelli già esistenti, solo 1 sec in 24 h

Naturalmente ogni circuito andrebbe tarato singolarmente.

E' vero quello che dici, ma dimentichi che i condensatori esistenti all'interno dell'IC sono stati progettati per un quarzo ideale.

Ti allego le note applicative che spiegano bene la cosa.

DS1307_xtal.pdf (130 KB)