Pages: 1 ... 57 58 [59] 60 61 ... 72   Go Down
Author Topic: swRTC  (Read 70539 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley

Bug TIMESTAMP:

Comandi usati:
Code:
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  smiley
Logged

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

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 493
Posts: 12299
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink
Logged

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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley
Insomma è un gran casino  smiley-mr-green
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley
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  smiley-razz

Quote
Tanto era dovuto, porgo distinti saluti  smiley

Altrettanto a lei  smiley-wink
Logged


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6974
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley

Bug TIMESTAMP:

Comandi usati:
Code:
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  smiley

Provo anche io a fare dei test.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6974
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley
Logged

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

0
Online Online
Shannon Member
****
Karma: 129
Posts: 10444
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: April 16, 2012, 05:06:38 am by lesto » Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-wink
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

o.t. sono stato in giro nel tuo blog, ho letto le radici del dos, interessantissimo articolo  smiley
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
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 493
Posts: 12299
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink
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
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa ancora Leo smiley-mr-green
E di che?  smiley-wink
Logged


0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Pages: 1 ... 57 58 [59] 60 61 ... 72   Go Up
Jump to: