#include <Wire.h> // Biblioteca para comunicação I2C
#include <LiquidCrystal_I2C.h> // Biblioteca para LCD I2C
#include "RTClib.h" // Biblioteca para o RTC
RTC_DS1307 rtc;
// Defina o endereço I2C do seu LCD (geralmente 0x27 ou 0x3F) e o tamanho da tela (16 colunas x 2 linhas)
LiquidCrystal_I2C lcd(0x27, 16, 2);
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup () {
Serial.begin(115200);
// Inicializa o LCD
lcd.init();
lcd.backlight(); // Liga a luz de fundo do LCD
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
lcd.print("RTC Error");
Serial.flush();
abort();
}
}
void loop () {
DateTime now = rtc.now();
// Limpa o LCD para exibir a nova data e hora
lcd.clear();
// Define o cursor na primeira linha para exibir a data
lcd.setCursor(0, 0);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
// Define o cursor na segunda linha para exibir a hora
lcd.setCursor(0, 1);
if (now.hour() < 10) {
lcd.print('0'); // Adiciona um zero à esquerda se a hora for menor que 10
}
lcd.print(now.hour(), DEC);
lcd.print(':');
if (now.minute() < 10) {
lcd.print('0'); // Adiciona um zero à esquerda se os minutos forem menores que 10
}
lcd.print(now.minute(), DEC);
lcd.print(':');
if (now.second() < 10) {
lcd.print('0'); // Adiciona um zero à esquerda se os segundos forem menores que 10
}
lcd.print(now.second(), DEC);
delay(1000); // Exibe a data e hora por 1 segundo
}