Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Domine o Arduino com DS3231 RTC: Tutorial Passo a Passo do Relógio de Tempo Real

Neste tutorial Arduino, aprenderemos a usar o módulo Real Time Clock DS3231. Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo.

Visão Geral

A primeira pergunta que surge é: por que realmente precisamos de um RTC separado para nosso projeto Arduino quando o próprio Arduino tem um cronômetro embutido? O ponto é que o módulo RTC funciona com bateria e pode manter o controle do tempo mesmo se reprogramarmos o microcontrolador ou desconectarmos a alimentação principal.

Domine o Arduino com DS3231 RTC: Tutorial Passo a Passo do Relógio de Tempo Real

DS3231 Real Time Clock

O DS3231 é um Real Time Clock de baixo custo e alta precisão, que pode manter horas, minutos e segundos, bem como informações de dia, mês e ano. Também possui compensação automática para anos bissextos e para meses com menos de 31 dias.

Domine o Arduino com DS3231 RTC: Tutorial Passo a Passo do Relógio de Tempo Real

O módulo pode funcionar tanto em 3,3V quanto em 5V, o que o torna adequado para muitas plataformas de desenvolvimento ou microcontroladores. A entrada da bateria é 3V e uma bateria CR2032 3V típica pode alimentar o módulo e manter as informações por mais de um ano.

O módulo usa o Protocolo de Comunicação I2C, o que torna a conexão com a placa Arduino muito fácil.

Aqui está o esquema do circuito:

Domine o Arduino com DS3231 RTC: Tutorial Passo a Passo do Relógio de Tempo Real

Tudo o que precisamos são 4 fios: os pinos VCC e GND para alimentar o módulo, e os dois pinos de comunicação I2C, SDA e SCL.

Você pode obter os componentes necessários para este tutorial Arduino nos links abaixo:

  • DS3231 Real Time Clock
  • Placa Arduino
  • Protoboard e Jumpers

Programação

Uma vez conectado o módulo, precisamos programar a placa Arduino para trabalhar com o Real Time Clock. No entanto, quando se trata de programar uma comunicação entre Arduino e um módulo I2C, o código não é tão pequeno e fácil. Felizmente, já existem várias bibliotecas para o RTC DS3231 que podem ser encontradas na internet.

Para este tutorial, escolhi usar a biblioteca feita por Henning Karlsen, que pode ser encontrada e baixada do site dele, www.rinkydinkelectronics.com.

Uma vez que baixamos e instalamos a biblioteca, podemos usar seu primeiro exemplo de demonstração para ativar inicialmente o relógio do módulo RTC. Na seção setup do código do exemplo de demonstração, podemos notar que há três linhas que precisamos descomentar para definir inicialmente o dia da semana, a hora e a data.

// Código do Exemplo Demo da Biblioteca DS3231
void setup() {
  Serial.begin(115200);
  // Descomente a próxima linha se estiver usando Arduino Leonardo
  //while (!Serial) {}
  rtc.begin();

  // As linhas a seguir podem ser descomentadas para definir data e hora
  //rtc.setDOW(WEDNESDAY); // Define Dia da Semana para QUARTA-FEIRA
  //rtc.setTime(12, 0, 0); // Define a hora para 12:00:00 (formato 24h)
  //rtc.setDate(1, 1, 2014); // Define a data para 1 de Janeiro de 2014
}

A primeira linha é para definir o dia da semana, a segunda linha para definir a hora em horas, minutos e segundos, e a terceira linha para definir a data em dias, meses e anos.

Uma vez que fazemos upload deste código, precisamos comentar novamente as três linhas e fazer upload do código novamente.

// Código do Exemplo Demo da Biblioteca DS3231
void loop() {
  // Envia Dia da Semana
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  // Envia data
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");
  // Envia hora
  Serial.println(rtc.getTimeStr());
  // Aguarda um segundo antes de repetir
  delay(1000);
}

Se olharmos a seção loop do código, podemos ver que agora, usando as três funções personalizadas, obtemos as informações do RTC e as imprimimos no Monitor Serial. Aqui está como elas aparecem no Monitor Serial.

Domine o Arduino com DS3231 RTC: Tutorial Passo a Passo do Relógio de Tempo Real

Agora, mesmo se desconectarmos a alimentação do Arduino e a reconectarmos e executarmos o Monitor Serial novamente, notaremos que o tempo continua sem ser reiniciado.

Então, agora temos nosso Real Time Clock funcionando e podemos usá-lo em qualquer projeto Arduino. Como segundo exemplo, conectei um LCD ao Arduino e imprimi a hora e a data nele.

Domine o Arduino com DS3231 RTC: Tutorial Passo a Passo do Relógio de Tempo Real

Aqui está o código fonte deste exemplo:

/*
 * Tutorial Arduino Módulo Real Time Clock DS3231
 * Criado por Dejan Nedelkovski,
 * www.HowToMechatronics.com
 * Biblioteca DS3231 feita por Henning Karlsen, disponível em www.rinkydinkelectronics.com.
 */
#include <DS3231.h>
#include <LiquidCrystal.h> // inclui a biblioteca LiquidCrystal

DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Cria objeto LC. Parâmetros: (rs, enable, d4, d5, d6, d7)

void setup() {
  rtc.begin(); // Inicializa o objeto rtc
  lcd.begin(16,2); // Inicializa a interface para a tela LCD, e especifica as dimensões (largura e altura) do display
}

void loop() {
  lcd.setCursor(0,0);
  lcd.print("Time: ");
  lcd.print(rtc.getTimeStr());
  lcd.setCursor(0,1);
  lcd.print("Date: ");
  lcd.print(rtc.getDateStr());
  delay(1000);
}

Isso é tudo para este tutorial Arduino. Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo.

Processo de manufatura

  1. Relógio POV com Arduino: Construa um Display LED de Persistência de Visão
  2. Crie uma Fechadura RFID Segura com Arduino – Guia Passo a Passo
  3. Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
  4. Monitor de Temperatura e Relógio Tempo Real com Arduino Due e Display TFT 3.2"
  5. Construa um Relógio de Berlim com Arduino UNO – Relógio DIY de Matriz LED
  6. Relógio Digital TM1637 com Configuração de Hora e Alarme – Prototipo Arduino Nano
  7. eDOT: Relógio de Precisão e Estação Meteorológica Arduino com Controle IR Embutido
  8. Relógio Meteorológico Arduino em Tempo Real: Display OLED para Hora, Data e Temperatura
  9. Projeto Sensor de Impressão Digital com Arduino Nano – Tutorial Completo
  10. Detecção de Mudanças 3D em Tempo Real por Robô Aumenta Segurança de Soldados via RA