Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Utilizando o Módulo RTC DS1307 com Arduino

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:

  • 1 x Arduino Uno
  • 1 x Módulo RTC DS1307
  • 1 x Display LCD 16x2
  • 1 x Potenciômetro (10kΩ)
  • 1 x Protoboard
  • Jumpers (fios de conexão)

Exemplos:

  1. 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:

  • As bibliotecas Wire.h e RTClib.h são utilizadas para comunicação I2C e manipulação do RTC DS1307.
  • A biblioteca LiquidCrystal.h é usada para controlar o display LCD.
  • No setup(), inicializamos o I2C, o LCD e verificamos se o RTC está funcionando. Se não estiver, ajustamos a data e hora iniciais.
  • No loop(), obtemos a data e a hora atuais do RTC e as exibimos no display LCD.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.