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

Tutorial de relógio em tempo real Arduino e DS3231


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

Visão geral


A primeira pergunta que vem aqui é por que realmente precisamos de um RTC separado para nosso projeto Arduino quando o próprio Arduino possui um temporizador embutido. Bem, o ponto é que o módulo RTC funciona com uma bateria e pode acompanhar o tempo mesmo se reprogramarmos o microcontrolador ou desconectarmos a energia principal.

Relógio em tempo real DS3231


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

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

O módulo utiliza o protocolo de comunicação I2C que facilita muito a conexão com a placa Arduino.

Segue os esquemas do circuito:

Então, 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 do Arduino nos links abaixo:
  • Relógio em tempo real DS3231……………..
  • Placa Arduino ………………………………
  • Breadboard e jump wires ……… 

Programação


Uma vez que conectamos o módulo, precisamos programar a placa Arduino para trabalhar com o relógio de tempo real. No entanto, quando se trata de programar uma comunicação entre o 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 DS3231 RTC que podem ser encontradas na internet.

Para este tutorial optei por usar a Biblioteca feita por Henning Karlsen que pode ser encontrada e baixada em seu site, www.rinkydinkelectronics.com.

Assim, 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 de configuração do código de exemplo de demonstração, podemos notar que existem três linhas que precisamos descomentar para definir inicialmente o dia da semana, a hora e os dados.
// Code from the Demo Example of the DS3231 Library

void setup()
{
  // Setup Serial connection
  Serial.begin(115200);
  // Uncomment the next line if you are using an Arduino Leonardo
  //while (!Serial) {}
  
  // Initialize the rtc object
  rtc.begin();
  
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014
}Code language: Arduino (arduino)

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.

Depois de fazer o upload desse código, precisamos comentar as três linhas e reenviar o código novamente.
// Code from the Demo Example of the DS3231 Library

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating
  delay (1000);
}Code language: Arduino (arduino)

Se dermos uma olhada na seção de 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 Serial Monitor. Veja como eles aparecem no Serial Monitor.

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

Então agora temos nosso Relógio em Tempo Real funcionando e podemos usar em qualquer projeto Arduino. Como segundo exemplo, conectei um LCD ao Arduino e imprimi a hora e a data nele.

Aqui está o código-fonte deste exemplo:
/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library 

DS3231  rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 rtc.begin(); // Initialize the rtc object
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the 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); 
}Code language: Arduino (arduino)

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

Processo de manufatura

  1. Relógio de visão pov do Arduino
  2. Tutorial de bloqueio RFID do Arduino
  3. Relógio mestre
  4. Arduino Temp. Monitor e relógio em tempo real com tela 3.2
  5. Relógio de Berlim
  6. Relógio digital TM1637 com configuração de hora e funcionalidade de alarme
  7. eDOT - Relógio de precisão baseado em Arduino e estação meteorológica
  8. Exibição de temperatura OLED do Arduino com relógio em tempo real
  9. Tutorial do sensor de impressão digital Arduino
  10. Robot detecta e compartilha alterações em 3D em tempo real