Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
O DS1307 é um módulo RTC (Real Time Clock) amplamente utilizado para manter a contagem de tempo precisa em projetos eletrônicos. Ele é essencial para aplicações que exigem data e hora, como sistemas de registro de dados, relógios digitais, sistemas de automação residencial e muito mais. Integrar o DS1307 com o Arduino permite que os projetos mantenham a precisão temporal mesmo após desligamentos ou reinicializações, graças à bateria de backup que mantém o relógio em funcionamento.
Projeto: Neste projeto, vamos criar um relógio digital utilizando o módulo RTC DS1307 com o Arduino. O objetivo é ler a data e a hora do DS1307 e exibi-las em um display LCD 16x2. Além disso, exploraremos como ajustar a data e a hora no módulo RTC e como utilizar a biblioteca "RTClib" para facilitar a comunicação entre o Arduino e o DS1307.
Lista de componentes:
Exemplos:
Conexão do DS1307 ao Arduino:
// Incluindo as bibliotecas necessárias
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>
// Criando uma instância do RTC
RTC_DS1307 rtc;
// Configuração do display LCD
const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup () {
// Inicializando a comunicação I2C
Wire.begin();
// Inicializando o LCD
lcd.begin(16, 2);
// Inicializando o RTC
if (!rtc.begin()) {
lcd.print("RTC nao encontrado");
while (1);
}
// Verificando se o RTC está funcionando
if (!rtc.isrunning()) {
lcd.print("RTC nao esta");
lcd.setCursor(0, 1);
lcd.print("funcionando!");
// Ajuste inicial da data e hora: 2023-10-01 12:00:00
rtc.adjust(DateTime(2023, 10, 1, 12, 0, 0));
}
}
void loop () {
DateTime now = rtc.now();
// Exibindo a data no LCD
lcd.setCursor(0, 0);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
// Exibindo a hora no LCD
lcd.setCursor(0, 1);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
delay(1000);
}
Explicação do código:
Wire.h
e RTClib.h
são utilizadas para comunicação I2C e manipulação do RTC DS1307.LiquidCrystal.h
é usada para controlar o display LCD.setup()
, inicializamos o I2C, o LCD e verificamos se o RTC está funcionando. Se não estiver, ajustamos a data e hora iniciais.loop()
, obtemos a data e a hora atuais do RTC e as exibimos no display LCD.