Entrar    Registrar

DS 1307 RTC

Fórum sobre plataforma Arduino

Moderadores: andre_teprom, guest2003, 51, Renie

  • Autor
    Mensagem

DS 1307 RTC

Mensagempor cordeiro » 29 Out 2016 11:04

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.
cordeiro
Bit
 
Mensagens: 17
Registrado em: 09 Fev 2007 17:52

Re: DS 1307 RTC

Mensagempor andre_teprom » 29 Out 2016 13:38

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 )
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5082
Registrado em: 11 Out 2006 18:27
Localização: Portugal

Re: DS 1307 RTC

Mensagempor brasilma » 30 Out 2016 11:23

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.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3186
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Re: DS 1307 RTC

Mensagempor cordeiro » 30 Out 2016 19:07

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
cordeiro
Bit
 
Mensagens: 17
Registrado em: 09 Fev 2007 17:52

Re: DS 1307 RTC

Mensagempor pamv » 30 Out 2016 20:02

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.
pamv
Byte
 
Mensagens: 339
Registrado em: 20 Jun 2016 21:47

Re: DS 1307 RTC

Mensagempor cordeiro » 31 Out 2016 07:40

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
cordeiro
Bit
 
Mensagens: 17
Registrado em: 09 Fev 2007 17:52

Voltar para ARDUINO

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante