Go Down

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

astrobeed


in questo Topic hai proprio conferma di quello che sto dicendo, quindi dando per scontato che tu abbia ragione (e non mi azzarderei a fare diversamente :smiley-mr-green:) resta solo l'ipotesi del pilotaggio di un transistor, la R smd da 501 in serie all'anodo del led c'è;


Facciamo un banalissimo conto, I = V/R = 5/500 = 10 mA se sono tutti i 5V ai capi della R, se poi ci mettiamo di mezzo la caduta di tensione su i led la corrente diventa ridicola anche considerando solo 3V di caduta, 2/500 = 4 mA.
Non metto in dubbio che sul display di cui parli hai visto una R da 500 ohm collegata sul contatto dell'Anodo della retro, ma non va verso l'anodo, sicuramente va da qualche altra parte, nessun display LCD di quel tipo possiede un driver dedicato per la corrente della retro, solo alcuni modelli di fascia alta, e abbastanza costosi, hanno generatori a corrente costante integrati sulla board.


Testato

Non pensavo di scalarti test su questa questione.
Mi devo ricredere, oltre a scalarti 3 test devo mandarti anche fattura perche'
i test sono gratuiti, ma la documentazione dei bug e' a pagamento  :)

Bug TIMESTAMP:

Comandi usati:
Code: [Select]
Serial.println(rtc.getTimestamp(), DEC);
Serial.println(rtc.weekDay(rtc.getTimestamp()), DEC);


Risultato su un Venerdi' del 1999
Quote
Data settata manualmente: 16,04,1999 (venerdi)
924267591 timestamp
5 weekday


Risultato su un Venerdi' del 2012
Quote
Data settata manualmente: 13,04,2012 (venerdi)
1334235591 timestamp
4 weekday


Come vedi nel 1999 il venerdi' risulta il numero 5, nel 2012 il venerdi' risulta il numero 4
Sembrava a prima vista un bug in weekday, invece e' un bug del timestamp perche' ho controverificato i dati:
- 924267591 corrisponde al 16 di Aprile del 1999, quindi Venerdi', quindi 5
- 1334235591 invece corrispode al 12 di Aprile del 2012, quindi essendo Giovedi', weekday mette 4

Proposta:
Visto che devi fare le correzioni alla documentazione, per il discorso TimeStamp-->Timestamp
Visto che devi correggere il bug timestamp
Perche' non approfitti per eliminare il comando rtc.weekDay e crearne uno piu' comodo per gli utenti rtc.getWeekday. In questo modo sarebbe tutto piu' lineare, e chi vuole il giorno della settimana lo stampa in modo diretto senza dover prima capire cosa e', e come usare il timestamp.

Tanto era dovuto, porgo distinti saluti  :)
- [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



in questo Topic hai proprio conferma di quello che sto dicendo, quindi dando per scontato che tu abbia ragione (e non mi azzarderei a fare diversamente :smiley-mr-green:) resta solo l'ipotesi del pilotaggio di un transistor, la R smd da 501 in serie all'anodo del led c'è;


Facciamo un banalissimo conto, I = V/R = 5/500 = 10 mA se sono tutti i 5V ai capi della R, se poi ci mettiamo di mezzo la caduta di tensione su i led la corrente diventa ridicola anche considerando solo 3V di caduta, 2/500 = 4 mA.
Non metto in dubbio che sul display di cui parli hai visto una R da 500 ohm collegata sul contatto dell'Anodo della retro, ma non va verso l'anodo, sicuramente va da qualche altra parte, nessun display LCD di quel tipo possiede un driver dedicato per la corrente della retro, solo alcuni modelli di fascia alta, e abbastanza costosi, hanno generatori a corrente costante integrati sulla board.

ok, la cosa strana è che questi display li puoi alimentare direttamente con 5V, senza limitazione di corrente, e assorbono poco. Appena posso faccio due prove: voglio misurare l'assorbimento della sola retro, poi mi collego a valle della R da 501, con una R esterna, per vedere che succede; tanto ho un display che ha il controller sballato e non rischio nulla ;)
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

astrobeed


ok, la cosa strana è che questi display li puoi alimentare direttamente con 5V, senza limitazione di corrente, e assorbono poco.


Mica c'è niente di strano, a seconda del modello i display LCD possono essere sia con che senza resistenze di limitazione per la retro e l'alimentazione per questa può essere sia separata da quella della logica che essere in comune.
Mi spiego meglio, su alcuni LCD basta che dai il 5V sui i relativi contatti e si accende anche la retro, su altri modelli è necessario portare i 5V ai contatti dedicati per la retro perché sono isolati da quella principale, solitamente arrivano questi perché in questo modo è possibile controllare l'accensione e/o la luminosità della retro.
In alcuni modelli sono già presenti le resistenze di limitazione della corrente in altri non ci sono e vanno messe esternamente, su molti modelli di display è presente una matrice di alimentazione per la retro tramite la quale è possibile scegliere dove collegarla ed eventualmente montare direttamente sul pcb le resistenze di limitazione.
Quanta corrente richiede la retro dipende dal modello del display, dalle sue dimensioni e pure dal colore, io ho dei vecchi LCD 4x20 con retro verde che se non gli dai almeno 200 mA la retro è fioca, però ho pure dei moderni LCD blu con scritta bianca che con 50 mA ti ci abbronzi  :)
Insomma è un gran casino  :smiley-mr-green:

leo72


Non pensavo di scalarti test su questa questione.
Mi devo ricredere, oltre a scalarti 3 test devo mandarti anche fattura perche'
i test sono gratuiti, ma la documentazione dei bug e' a pagamento  :)

OK. Fattura a
Menniti Prof. Michele
Piazza La Bomba E Scappa
Lamezia Terme
:smiley-yell: :smiley-yell:

Quote

Come vedi nel 1999 il venerdi' risulta il numero 5, nel 2012 il venerdi' risulta il numero 4
Sembrava a prima vista un bug in weekday, invece e' un bug del timestamp perche' ho controverificato i dati:
- 924267591 corrisponde al 16 di Aprile del 1999, quindi Venerdi', quindi 5
- 1334235591 invece corrispode al 12 di Aprile del 2012, quindi essendo Giovedi', weekday mette 4

Adesso non sono a casa per cui non posso fare prove ma non vorrei che il problema fosse il "2000" nel mezzo, che è un anno centenario ma anche quadricentenario quindi per il primo caso non sarebbe bisestile ma per il secondo sì. E' la prima ipotesi che mi viene a mente. Oggi o domani indago meglio.

Quote

Proposta:
Visto che devi fare le correzioni alla documentazione, per il discorso TimeStamp-->Timestamp



Quote

Visto che devi correggere il bug timestamp



Quote

Perche' non approfitti per eliminare il comando rtc.weekDay e crearne uno piu' comodo per gli utenti rtc.getWeekday. In questo modo sarebbe tutto piu' lineare, e chi vuole il giorno della settimana lo stampa in modo diretto senza dover prima capire cosa e', e come usare il timestamp.

Ci penso  :P

Quote

Tanto era dovuto, porgo distinti saluti  :)


Altrettanto a lei  ;)

PaoloP


Non pensavo di scalarti test su questa questione.
Mi devo ricredere, oltre a scalarti 3 test devo mandarti anche fattura perche'
i test sono gratuiti, ma la documentazione dei bug e' a pagamento  :)

Bug TIMESTAMP:

Comandi usati:
Code: [Select]
Serial.println(rtc.getTimestamp(), DEC);
Serial.println(rtc.weekDay(rtc.getTimestamp()), DEC);


Risultato su un Venerdi' del 1999
Quote
Data settata manualmente: 16,04,1999 (venerdi)
924267591 timestamp
5 weekday


Risultato su un Venerdi' del 2012
Quote
Data settata manualmente: 13,04,2012 (venerdi)
1334235591 timestamp
4 weekday


Come vedi nel 1999 il venerdi' risulta il numero 5, nel 2012 il venerdi' risulta il numero 4
Sembrava a prima vista un bug in weekday, invece e' un bug del timestamp perche' ho controverificato i dati:
- 924267591 corrisponde al 16 di Aprile del 1999, quindi Venerdi', quindi 5
- 1334235591 invece corrispode al 12 di Aprile del 2012, quindi essendo Giovedi', weekday mette 4

Proposta:
Visto che devi fare le correzioni alla documentazione, per il discorso TimeStamp-->Timestamp
Visto che devi correggere il bug timestamp
Perche' non approfitti per eliminare il comando rtc.weekDay e crearne uno piu' comodo per gli utenti rtc.getWeekday. In questo modo sarebbe tutto piu' lineare, e chi vuole il giorno della settimana lo stampa in modo diretto senza dover prima capire cosa e', e come usare il timestamp.

Tanto era dovuto, porgo distinti saluti  :)


Provo anche io a fare dei test.

Testato


inserendo qui http://www.mario-online.com/timestamp.php il timestamp controlli se il numero è corretto,

ATTENZIONE
questo server ha diversi bug, ho gia' contattato l'autore.

Piu' precisamente:
1- di base sbaglia di 1 ora, basta inserire come timestamp 1 (quindi il pimo secondo) di gen 1970 ed invece segna Ore 1:00 e 1sec

2- spesso sbaglia di 2 ore, ad esempio se si mette il timestamp di oggi sbaglia di due ore, forse c'e' in gioco qualche conversione che tiene conto dell'ora legale lato server ? non so ma di certo non e' giusto sbagliare, specialmente se a volte di una sola ora ed altre volte di due ore.

3- non accetta l'inserimento di 0 come timestamp, ma solo di 00 (al fine di ricevere gen 1970). Credo sia corretto che se accetta 1 deve accettare anche 0

Usate questo, consigliato anche da Leo a suo tempo, http://www.onlineconversion.com/unix_time.htm
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

PaoloP

il timestamp, almeno quello ufficiale dei server ntp, segue l'orario UTC, quello di Greenwich. Il fuso orario e l'ora legale non sono considerati.

Testato

lo so, infatti se rileggi ho ipotizzato problemi legati all'ora solare lato server, nel senso che magari, senza saperlo, si affida a qualche orologio per la conversione che tiene conto di questa cosa. Ripeto non lo so, ma il bug esiste, di base aggiunge un'ora, ed in alcune condizioni ne aggiunge una seconda.

Questo non c'entra nulla con il bug della swRTC che invece di suo sbaglia di un giorno esatto con timestamp successivi al 1999.
Ho scoperto il millennium bug della swRTC  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

lesto

#879
Apr 16, 2012, 12:00 pm Last Edit: Apr 16, 2012, 12:06 pm by lesto Reason: 1
se non ho capito male l'errore è in setClockWithTimestamp
controlla che il valore ritornato dalla funzione sia 0, se non lo è dimmi che valore ha che identifica quale operazione è andata storta

sarebbe anche utile sapere che anno di riferimento hai usato, e se usare un altro anno cambia la data di bug (se poi mi trovi anche l'altra data di bug sei un tesoro)

ps. Leo non ho notato la sezione "bug noti" sulla pagina di download, io la metterei
pps. grazie per la menzione  :smiley-mr-green:
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72


ps. Leo non ho notato la sezione "bug noti" sulla pagina di download, io la metterei

Forse aggiungerlo al readme.

Quote

pps. grazie per la menzione  :smiley-mr-green:

Non mi devi ringraziare, è il minimo per l'aiuto ricevuto  ;)

leo72


o.t. sono stato in giro nel tuo blog, ho letto le radici del dos, interessantissimo articolo  :)

Scusa se non ho dato seguito a questo tuo msg ma mi sa che mi sono mangiato la risposta.  :smiley-sweat:
Te la ripropongo.

Sono un amante di tutto ciò che è informatica anni '70/'80. Sulla Wiki ho tradotto un sacco di pagine in merito ed ho contribuito ad ampliarne tante altre.
Se vai sulla mia pagina utente sulla wiki (qui) vedi che cosa ho combinato  :smiley-sweat:

Michele Menniti


ok, la cosa strana è che questi display li puoi alimentare direttamente con 5V, senza limitazione di corrente, e assorbono poco. Appena posso faccio due prove: voglio misurare l'assorbimento della sola retro, poi mi collego a valle della R da 501, con una R esterna, per vedere che succede; tanto ho un display che ha il controller sballato e non rischio nulla ;)

Scoperto l'arcano, mi scuso ancora con Leo, ma la cosa è nata qui e la devo chiudere qui, un Topic mi pare ridicolo.
La R è effettivamente in serie al catodo (non all'anodo come pensavo ma è la stessa cosa), ma non è da 510 ohm; 510 è la sua sigla che in smd significa 51 + 0 zeri = 51 ohm (510 ohm in realtà sono siglati 511). Il consumo effettivo, misurato con strumento serio, è di 37-38mA circa sia per un 4x20 che per un 2x16. Direi che l'hanno reso pilotabile direttamente con un pin di Arduino. Se poi il pin fosse un pwm e si evitassero i valori limite alti io penso che si possa proprio alimentarlo direttamente senza rischiare nulla, poi un BC non fa mai male, ma in casi particolari....
Scusa ancora Leo :smiley-mr-green:
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

leo72


Testato

scusa Leo, ma stai lavorando al bug riscontrato o non te ne puo' fregar di meno ?  :smiley-mr-green:
http://arduino.cc/forum/index.php/topic,73496.msg760934.html#msg760934
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up