DS1307

Ho visto si internet questo integrato e dicono che restituisca tramite i2c data e ora... Mi chiedo, ma come uò essere? Va prima settato e poi ogni volta che si spegne va risettato? qualcuno di voi l'ha mai usato?

si, si collega in I2C
Ci sono un sacco di librerie per gestirlo
Va' settato una sola volta ( eventualmente un aggiustamento dei secondi ogni tot mesi )
Usa una sua batteria per mantenere ora e data corretta

Mi chiedo, ma come uò essere?

Miracolo

aaah, ok! Ho fatto questa domanda perchè su internet avevo visto un chip con un nome simile che si collegava a francoforte per l'orario. ma non si potrebbe far compiere questo lavoro ad attiny visto che sei tu a settare data e ora? Oppure direttamente in uno sketch su arduino? per avere meno componenti tra le mani...
p.s. Ho fatto questa domanda perchè nella discussione de ilmandorlone avevo visto un chip con un nome simile che si collegava a francoforte per l'orario, e mi chiedevo se anche questo avesse la stessa proprietà.

DCF77.... e' il nome del collegamento via radio ( onde lunghe ) da Francoforter ( o ha cambiato postazione ? )

Il DS1307 e' un chip ( RTC ) specializzato per il mantenimento della data e ora . usa un suo quarzo ( 32.768 hz ) e una sua batteria di backup ( CR2025-CR2032, etc )
Il settaggio della data e ora si fa' una tantum, ovvero quando lo accendi la prima volta.
Arduino o il Tiny, senza un sistema di batteria in tampone, a ogni riavvio o reset dovresti reimpostare l'ora e la data

E' come l'orologio di un PC, cambia nome del chip, ma il risultato e' lo stesso

Si, potresti anche usare il DCF77 per sincronizzare l'ora su arduino. Solo che e' un segnale molto particolare, legato alle condizioni ambientali ( propagazione nella ionosfera ) e quindi possono passare ore o giorni, prima che riesca a sinconizzarsi ( normalmente lo fa' durante la notte, quando le condizioni sono piu' favorevoli )

In conclusione. Il modo piu' sicuro e rapido e' un RTC, come appunto il DS1307
Poi c'e' chi sincronizza l'RTC con DCF77 o NTP ( un servizio di sincronizzazione via internet ), ma e' solo per avere l'orario il piu' esatto possibile

Capito. Quindi è un semplice integrato che la ore con una batteria come quello dei pc sostituibile con un attiny+batteria.

SUBSEA:
Capito. Quindi è un semplice integrato che la ore con una batteria come quello dei pc sostituibile con un attiny+batteria.

si, ma farlo non ha senso.
Hai un chip specializzato, che ti costa meno , che devi solo collegare e usare....
perche' cercare di fare un clone

Giusto, giusto. Grazie molte Brunello! Proprio un utente... DOC! :stuck_out_tongue_closed_eyes:

Mi permetto di entrare nella discussione per "difendere" la possibilità di far svolgere ad un microcontrollore anche il compito di RTC. :sweat_smile:

Non è detto che si perda precisione, il mio Micrologio lo dimostra: la si perde senz'altro nei confronti dei chip RTC termocompensati oppure di quei dispositivi che si sincronizzano in automatico a servizi orari esterni ecc... ma nei confronti di un economico DS1307 anche il modulo interno dell'Atmega328 può svolgere egregiamente il suo compito, facendo risparmiare l'RTC esterno.

Poi ovviamente dipende da caso a caso ma se l'applicazione è semplice, io voto per il risparmio del chip dedicato e per l'uso della MCU.

Sono anche io della tua decisione Leo; trovo soldi e (sopratutto) spazio (visto che i pbc più piccoli sono meglio è :sweat_smile:) sprecati. Comunque ognuno la pensa come vuole, e non escludo che un giorno un ds1307 non sia sul mio banco da lavoro!!! :grin:

Ciao a tutti ,mi aggiungo anche io per darti un approfondimento ulteriore sul DS1307,ti do un link dove mostra come leggere e scrivere senza usare una libreria Usare il modulo RTC DS1307 con Arduino ma usando semplicemente i suoi registri,altra cosa utile è che dispone di una ram di 56byte (56 parole da 8 bit) che si possono usare ad esempio per memorizzare un evento tipo una sveglia o un appuntamento o altro.

tonid:
altra cosa utile è che dispone di una ram di 56byte (56 parole da 8 bit) che si possono usare ad esempio per memorizzare un evento tipo una sveglia o un appuntamento o altro.

Detta così pare quasi che basta scrivere nella RAM questi dati per avere automaticamente eventi tipo reminder. In realtà quella è appunto una memoria tampone, dove tu puoi scriverci i valori che ti pare, anche quelli di un allarme.
Sta però all'utente gestire poi l'evento.

In quella RAM, in definitiva, puoi memorizzarci di tutto, anche una password, se ti va. Ovviamente a runtime e tenendo conto che se il chip viene scollegato dalla batteria tampone quei dati si perdono e vanno riscritti dallo sketch all'avvio del programma.

EDIT:
se si vuole un RTC hardware capace di funzioni di allarme, c'è il PCF8563. Ovviamente DIP8, I2C e con libreria per Arduino come il DS1307.

Detta così pare quasi che basta scrivere nella RAM questi dati per avere automaticamente eventi tipo reminder. In realtà quella è appunto una memoria tampone, dove tu puoi scriverci i valori che ti pare, anche quelli di un allarme.
Sta però all'utente gestire poi l'evento.

Lo davo per scontato ma hai fatto bene a specificarlo :wink: