DS3231 (Relógio em Tempo Real) com Arduino

É possível calcular tempo, ao a passagem de tempo, com relativa simplicidade utilizando a função millis(), no Arduino. No entanto, há casos em que saber exatamente uma data, ou executar ações em uma determinada hora, minuto, segundo. Para isso, um módulo como o DS3231 é uma mão na roda.

Figura 1 - DS3231 e Arduino

O sensor

O módulo RTC DS3231 é um circuito baseado no chip DS3231 que opera tanto em 3.3 V quanto em 5 V, de alta precisão, capaz de ajustar automaticamente, corrigindo datas para meses com quantidades de dias diferentes e anos bissextos, e baixo consumo de energia (Cerca de 500 nA no modo bateria com o oscilador ligado).

Adicionalmente, possui um chip de memória, o AT24C32, que tem uma capacidade de 32 Kb, EPROM, que pode ser usada pelo microcontrolador como memoria estendida, possui também um sensor de temperatura integrado e pode usar uma bateria CR (3 V) para não perder os dados em caso de falta de fornecimento de energia ao módulo.

O módulo também possibilita a criação de dois alarmes de hora programável e tem uma porta de saída de onda quadrada.

O circuito

A comunicação do módulo ao Arduino é feita por I2C (Inter Integrated Circuit), que é um popular protocolo de comunicação serial e a ligação é muito simples. Vale apenas ressaltar que nas diferentes placas Arduino, as portas I2C são acessadas por pinos distintos, por exemplo, Uno e Nano: SDA (A4), SCL(A5), Mega e Leonardo: SDA (20), SCL(21). Material:
  • 1x - Arduino
  • 1x - Módulo DS3231
  • 2x - Resistores de 10 KR
Figura 2 - Circuito montado

A pinagem para a montagem é intuitiva, VCC e GND ligados ao 5V e GND do Arduino, SDA (Serial Data) e SCL (Serial Clock), aos pinos A4 e A5 (No caso do Arduino Uno). O pino SQW, opcional, server como uma saída programável em onda quadrada ou, como um interruptor, como no nosso caso, está conectado ao pino D2, e a um resistor de Pull-Up para evitar ruídos na leitura. O pino 32K, também opcional, serve para para ler os pulsos do oscilador de cristal, está conectado ao pino PWM, D3, e a um resistor de Pull-Up.

A programação

Para programar este módulo existem diversas bibliotecas disponíveis para auxiliar nesta tarefa, minha recomendação é que use a biblioteca Rtc (Makuna), uma das mais completas. Ela pode ser instalada facilmente pelo próprio gerenciador de bibliotecas do Arduino IDE, basta pesquisar por "RTC Makuna", e então, veja a lista de exemplos de uso ou consulte o Wiki da biblioteca, no link do repositório, para os detalhes sobre a programação

DS3231 (Relógio em Tempo Real) com Arduino DS3231 (Relógio em Tempo Real) com Arduino Reviewed by AJ Alves on quinta-feira, abril 27, 2017 Rating: 5

Nenhum comentário:

Tecnologia do Blogger.