Go Down

Topic: swRTC (Read 84767 times) previous topic - next topic

unoracing

Grazie Leo, allora aspetterò di aver tutti i pezzi, speravo di riuscire cmq a centrare un pochino con swrtc ma sembra davvero che l'arduino uno sia instabile per quanto riguarda il clock. Ho letto da qualche parte che c'era la possibilità di metter un secondo quarzo, è vero oppure ho capito male? se si come si potrebbe fare?

Testato

se hai la Release 1 di arduino Uno, puoi modificarla, dissaldando il risuonatore e mettendo un quarzo e i due condensatori, e' pero' un lavoro da fare con componenti smd, come puoi vedere tu stesso
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

Nel 1° post trovate la versione 1.0.3. Ho introdotto il supporto al clock a 4 MHz. Questa frequenza è però supportata solo per i micro della serie Atmega (Atmega8, Atmega48/88/168/328, Atmega644/1284, Atmega640/1280/1281/2560/2561) per via dei differenti prescaler dei micro della serie Attiny.

Testato

leo oggi ho fatto caso ad una cosa, se diamo in pasto alla tua libreria questo:
Code: [Select]
Serial.print(rtc.getHours(), DEC);
    Serial.print(":");
    Serial.print(rtc.getMinutes(), DEC);
    Serial.print(":");
    Serial.println(rtc.getSeconds(), DEC);


Il risultato e' (per la mezzanotte)
Quote
0:0:0


dopo un secondodiventa:
Quote
0:0:1


ora la mia riflessione e' questa, normalmente un orario lo si immagina con 6 cifre 00:00:00
l'eliminazione degli zeri dal valore delle ore ci sta anche, cioe' e' una scelta soggettiva voler leggere alle 2 di notte 02 oppure solo 2

Pero' questa soggettivbita' secondo me viene meno nella gestione dei minuti e dei secondi, un orario scritto 0:1 non va bene, potrebbe far pensare che sia mezzanotte e 10.
Non ci sono dubbi che e' meglio scrivere 00:01 oppure come dicevo e' accettabile 0:01

Stesso discorso con i secondi, 1 secondo e' meglio scriverlo 01 e non 1

Ora secondo te ha senso implementare questa risposta lato libreria ? oppure per te va bene cosi' e quindi chi lo vuole se lo fa lato codice ?
Logicamente si puo' fare, ma resta il discorso che secondo me una libreria che risponde 0:01:01 alla mezzanotte un minuto un secondo e' meglio.

Se ti va potresti cambiare questa cosa ed anche creare la getWeekday al posto di dover fare (rtc.weekDay(rtc.getTimestamp()));
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

dalubar

Quote
Ora secondo te ha senso implementare questa risposta lato libreria ? oppure per te va bene cosi' e quindi chi lo vuole se lo fa lato codice ?

Si, secondo me ha senso, perchè i valori numerici restituiti sono utili per fare calcoli e/o confronti lato codice.
A parer mio, invece, si potrebbero aggiungere altri tre metodi che restituiscano la corrispondente versione "string" (ad esempio: rtc.getStrMinutes(), rtc.getStrSeconds(), etc.)
Al limite anche una comoda rtc.getStrClock() per stampare velocemente l'orario completo senza dover concatenare i vari pezzi.  :)

leo72

@testato:
La libreria restituisce valori numerici, se controlli che ore sono alle 08:00 è normale che ti restituisca il byte 8 per le ore ed il byte 0 per i minuti. Sta a te poi trattare i dati per come ti servono, eventualmente anche convertendoli in stringa se li vuoi stampare.

@dalubar:
forse ha senso solo il metodo che restituisce l'ora completa in formato stringa, al max con l'opzione di averla in formato OO:MM oppure OO:MM:SS. Mettere i 3 distinti metodi (per le ore, i minuti ed i secondi) mi pare solo un aggravio di calcoli dato che alla fine se si vuole l'orario in formato stringa immagino che non si voglia solo le ore o i minuti ma proprio tutto l'orario.

Testato

capisco, infatti non intendevo che la libreria sbagliasse.
Alla fine sto' chiedendo la stessa cosa che ha chiesto dalubar, perche' in realta' per come risponde la libreria se sono le 12:30:55 la stampa mi rida' i 6 numeri, ma se mi quando ci sono in gioco gli zeri si deve trattare il risultato lato sketch.

Sarebbe utile poter avere il risultato sia con i secondi che senza, i miei due orologi sono casualmente uno con i secondi uno senza  :)

Ricapitolando:
rtc.getWeekday()
rtc.getStrClock() senza secondi
rtc.getStrClock() con secondi

forza a lavoro
:smiley-yell: :smiley-yell: :smiley-yell:
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

dalubar



Ricapitolando:
rtc.getWeekday()
rtc.getStrClock() senza secondi
rtc.getStrClock() con secondi

forza a lavoro
:smiley-yell: :smiley-yell: :smiley-yell:

XD

Michele Menniti

[OT] In tutta questa vicenda della swRTC c'è qualcosa di incredibile: la patologica ricerca della precisione oraria da parte di un Napoletano :smiley-yell: quando un suo illustrissimo predecessore, tale Pulcinella, diceva solennemente
Quote
Tanno voglio murì, quanno tre rilorge vann' eguale
XD XD XD
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dalubar


[OT] In tutta questa vicenda della swRTC c'è qualcosa di incredibile: la patologica ricerca della precisione oraria da parte di un Napoletano :smiley-yell: quando un suo illustrissimo predecessore, tale Pulcinella, diceva solennemente
Quote
Tanno voglio murì, quanno tre rilorge vann' eguale
XD XD XD


Oggi Pulcinella sarebbe vittima della sua stessa affermazione, dato che ci sono ben cinque orologi che fanno la stessa ora  :P
1) Istituto Federale Fisico-Tecnico di Braunschweig (Germania)
2) National Physical Laboratory a Teddingtion (Londra)
3) National Institute for Standards e Tecnology di Fort Collins (Colorado)
4) Communications Research Laboratory (Tokio)
5) National Time Service Center (Cina).

leo72


capisco, infatti non intendevo che la libreria sbagliasse.

1a legge della Leobotica: La libreria non sbaglia, sono gli utenti che la usano in modo sbagliato  :smiley-yell: :smiley-yell:

Quote

Alla fine sto' chiedendo la stessa cosa che ha chiesto dalubar, perche' in realta' per come risponde la libreria se sono le 12:30:55 la stampa mi rida' i 6 numeri, ma se mi quando ci sono in gioco gli zeri si deve trattare il risultato lato sketch.

2a legge della Leobotica: Gli utenti devono usare gli strumenti così come gli vengono forniti  XD XD

Quote

Sarebbe utile poter avere il risultato sia con i secondi che senza, i miei due orologi sono casualmente uno con i secondi uno senza  :)

Ricapitolando:
rtc.getWeekday()
rtc.getStrClock() senza secondi
rtc.getStrClock() con secondi

forza a lavoro
:smiley-yell: :smiley-yell: :smiley-yell:

3a legge della Leobotica: Il Creatore non può apportare modifiche che infrangano la 1a o la 2a legge della Leobotica (soprattutto se ciò viene chiesto dopo che il Creatore ha lavorato il 2 giugno ]:D ]:D )

astrobeed


1a legge della Leobotica: La libreria non sbaglia, sono gli utenti che la usano in modo sbagliato  :smiley-yell: :smiley-yell:


+1

Quote

2a legge della Leobotica: Gli utenti devono usare gli strumenti così come gli vengono forniti  XD XD


+2

Quote

3a legge della Leobotica: Il Creatore non può apportare modifiche che infrangano la 1a o la 2a legge della Leobotica (soprattutto se ciò viene chiesto dopo che il Creatore ha lavorato il 2 giugno ]:D ]:D )


+3  :smiley-mr-green:

Testato

:)
grandi tutti

vado a mangiare
buon appetito
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Michele Menniti


:)
grandi tutti

vado a mangiare
buon appetito

APPROVO in pieno tutte le leggi di Leo72th (una specie di Imperatore :D)
A Testato, dimentichi il più importante:
6) Nixie Clock temperature compensated (Casa di Testato, dintorni di Napoli)
Buon appetito a tutti, oggi sono dalla mia adorata mamma, dubito di ritornare operativo prima delle 17 :smiley-fat:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dalubar

Quote
A Testato, dimentichi il più importante:
6) Nixie Clock temperature compensated (Casa di Testato, dintorni di Napoli)

Immagino ti riferissi al mio post...e comunque è verooo, chiedo scusa a Testato e al suo orologio :smiley-yell:

@Testato:potresti pubblicare qualche foto? Sono curioso di vederlo.  :P

Go Up