Página 1 de 1

DS 1307 RTC

MensagemEnviado: 29 Out 2016 11:04
por cordeiro
Bom dia.

Tenho um projeto rodando com Arduino e usando o DS1307 , agora preciso pegar a Hora do DS 1307 e fazer uma soma na mesma de 30 minutos .
Como consigo fazer isso ?

Exemplo: HORA atual 13:10:45 + 00:30:00 = 13:40:45

Júlio César.

Re: DS 1307 RTC

MensagemEnviado: 29 Out 2016 13:38
por andre_luis
Tudo depende da biblioteca que tá usando, mas em qualquer caso internamente o valor atual do tempo é convertido para a menor resolução, somado, e depois "desconvertido". Em outras palavras, no seu caso, deveria converter tudo para segundos, algo do tipo:

Formatado [hh:mm:ss]
13:10:45 + 00:30:00 = 13:40:45
Em segundos
13*(60)*(60)+10*(60)+45 + 30*(60) =
47.445 + 1.800 =
49.245s
Desconvertendo
Hora = 49.245 MOD ( 60*60 )
Minuto = 49.245 MOD ( 60 )

Re: DS 1307 RTC

MensagemEnviado: 30 Out 2016 11:23
por brasilma
Consegue sem problemas, trabalho em meus projetos com o DS1307 em assembly tanto como RTC, como para utilizar os bytes de memória interna que ele disponibiliza.

Como está trabalhando com o Arduíno, o acesso não será direto, mas através de alguma biblioteca (que facilita), a dica que posso dar é que os dados nos registradores do DS1307 obedecem o padrão decimal e não hexa, ou seja, 59 segundos ou minutos são armazenados como 89 em hexa. Utilizo duas rotinas que convertem de hexa para BCD e vice versa para escrever e ler dele. Você precisa verificar como a rotina vai entregar os dados (convertidos ou não).

Os bytes para segundos, minutos e hora são respectivamente 00, 01 e 02H, lembrando que a hora pode estar configurada para o padrão 12 ou 24H.

Faça os testes, e qualquer dúvida posta os resultados ai que tento ajudar.

Re: DS 1307 RTC

MensagemEnviado: 30 Out 2016 19:07
por cordeiro
Obrigado pela ajuda.

Estou usando DS1307 Biblioteca : http://www.rinkydinkelectronics.com/library.php?id=34

Preciso ter este valor primeiro em alguma variavel e não estou conseguindo isso no DataSheet esta assim:

TIME:
Structure to manipulate time-and date-data.
Variables:
hour, min, sec:For holding time-data
date, mon, year:For holding date-data
dow:
Day-of-the-week with monday being the fir
Usage:
Time t; // Define a structure named t of the Time-class

getTime();
Get current data from the DS1307.
Parameters:
None
Returns:
Time-structure
Usage:
t = rtc.getTime(); // Read current time and date

Tentei pegar este valor de rtc.getTime e joga-lo em uma variavel e sem sucesso.



Julio Cordeiro

Re: DS 1307 RTC

MensagemEnviado: 30 Out 2016 20:02
por pamv
Cordeiro

Junto com a lib vem um conjunto de exemplos, você compilou e rodou com sucesso o exemplo DS1307_Serial_Hard ? Ele lida com a estrutura Time como vc deseja.

Re: DS 1307 RTC

MensagemEnviado: 31 Out 2016 07:40
por cordeiro
Agradeço a todos a ajuda de muito valia.

Em especial ao pamv , consegui dentro do exemplo DS1307_Serial_Hard encontrar a solução e fazer a soma de 30 minutos no tempo de minutos.

Obrigado e grande abraço a todos.

CORDEIRO :D :D :D :D :D