Como usar com Arduino – Módulo Real Time Clock RTC DS3231

Como usar com Arduino – Módulo Real Time Clock RTC DS3231

img00_usar_com_arduino_modulo_real_time_clock_rtc_ds3231_uno_mega_2560_nano_relogio_horas_data

– Descrição:

Módulo Real Time Clock RTC DS3231 é um relógio em tempo real (RTC) de alta precisão e baixo consumo de energia. O módulo possui um sensor de temperatura embutido e possui também um cristal oscilador para ampliar sua exatidão. O mesmo é capaz de fornecer informações de hora, minutos, segundos, dia, data, mês e ano.

Para o funcionamento do Módulo Real Time Clock RTC DS3231 é necessário além da alimentação da placa, uma bateria CR2032 para poder permitir que os dados fiquem armazenados mesmo com a falta de energia. Além disso, o módulo é capaz de detectar falhas de energia e consequentemente acionando a bateria para evitar que os dados sejam perdidos. O módulo também é capaz de ajustar automaticamente o final dos meses que possuem menos de 31 dias, faz a correção de ano bissexto e trabalha tanto no formato de 12 horas quanto 24 horas.

– Especificações e características:

– Controlador: DS3231
– Tensão de operação: 3,3V – 5VDC
– Interface: I2C
– Computa horas / minutos / segundos / dias da semana / mês / meses / anos (de 2000 a 2099)
– Consome menos de 500nA no modo bateria com oscilador em funcionamento
– Memória: AT24C32 (capacidade de 32Kb que podem ser usados também como RAM estendida ao microcontrolador)
– Possui circuito de detecção de falha de energia
– Interface: I2C
– Bateria compatível: CR2032
– Sensor de temperatura: ~ 3° celsius de exatidão
– Temperatura de operação: 0 a 40° celsius

– Aplicações:

Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário obter informações das horas, dia e data.

– Proposta da prática:

Utilizar o Módulo Real Time Clock RTC DS3231 em conjunto com o Arduino e obter informações de horas, dia e data atual. Estas informações serão exibidas no monitor serial do ambiente de programação do Arduino.

– Lista dos itens necessários:

01 – Arduino com Cabo USB
01 – Módulo Real Time Clock RTC DS3231
04 – Cabos Jumper macho-fêmea

– Esquema de ligação da prática

img01_usar_com_arduino_modulo_real_time_clock_rtc_ds3231_uno_mega_2560_nano_relogio_horas_data

– Tutorial de instalação e configuração do ambiente de programação do Arduino:

Arduino – Instalação e Configuração da IDE no Windows

– Biblioteca:

Download RTClib

– Importando bibliotecas para o ambiente de programação do Arduino:

Arduino – Importando bibliotecas para a IDE

– Código:

OBS: se o RTC estiver sendo ligado pela primeira vez, ficou sem energia, esgotou a bateria ou você precisa de ajustar as informações do mesmo, remova o comentário da linha 18 ou 19 para que as informações sejam atualizadas. A linha de código de número 18 captura as informações no momento em que o sketch for compilado e define no RTC. Na linha de código de número 19 você pode inserir as informações manualmente. Lembre-se de usar somente uma das linhas e deixar uma delas comentada.

– Resultado final:

Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 13 comentários para esta postagem
  1. Luis Claudio Lorenzon às 20:04

    Parabéns pela simplicidade e clareza nas explicações e nos comentários do código. Ajudou muito! Os códigos postados sobre Arduíno + RTC por outros não mostram todos detalhes e o código não compila. Muito obrigado!

  2. Felipe às 19:16

    Sou novo em programação. Poderia me explicar porque essa matriz declarada no início, daysOfTheWeek[7][12] , tem 7 linhas e 12 colunas se são apenas 7 dias da semana no total?
    E porque ela foi declarada como chat se o conteúdo é String e não um carácter único?

  3. Marco Antonio às 21:26

    Olá, qual o procedimento para que o horário apareça como 20:00 e não 20:0 ?
    Parabéns pela aula, foi de grande ajuda

    • Euler Oliveira Autor às 11:52

      Olá Marco Antonio.

      Agradeço pelo comentário!

      Você deve verificar as funções da biblioteca utilizada no código e fazer a correção.

  4. Giovani às 19:41

    Muito obrigado pela ajuda Euler. Não querendo abusar, como faço para ajustar o dia da semana? Forte abraço!

  5. FABIO APARECIDO BORTOLOTTI às 09:53

    Mas devo ligalo em 5v ou 3.3v ouvi dizer que ele pode explodir a bateria se essa não for recarregável

    • Euler Oliveira Autor às 18:07

      Olá Pedro.

      Agradeço pelo comentário!

      Recomendo que pesquise por projetos similares a este que pretende montar, desta forma, você conseguirá as informações que precisa.

  6. judenilson às 11:26

    Poxa Euler Valeu pelo compartilhamento de informações!
    Perdi um tempão atrás de alguma explicação sobre como fazer o relógio continuar contando mesmo após desligamento do arduino, pois o método ajuste é sempre chamado quando o arduino reinicia, reiniciando também o relógio para o primeiro horário de quando foi compilado.
    Ninguém menciona esse método lostPower!
    Infelizmente documentação para as bibliotecas usadas no Arduino são horríveis!
    Mas graças a Deus e a Internet existem pessoas como você que estão dispostas a ajudar.
    Só pra deixar registrado, estou usando o módulo num ESP32. 😀
    Abraço.

    • Euler Oliveira Autor às 18:19

      Olá Judenilson.

      Agradeço pelo seu comentário e reconhecimento!

      Vlw!!!

  7. LUCAS A AZEVEDO às 16:11

    Obrigado por compartilhar o seu conhecimento, me ajudou muito.