//Curso: Automação com Arduino
//Pasta: C:/AcDc
//2024_06_06_12ª Aula     (2023_05_02_12ª Aula)

          //Programa: 2024_06_06_Aula_12a (RTC)
          
//Exercício: Dado pelo professor na sala
//O programa, até agora, está da seguinte maneira:

#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
RTC_DS1307 relogio;
int ano= 0;
int mes= 0;
int dia= 0;
int hora= 0;
int minuto = 0;
int segundo = 0;
int hora_liga=0;
int minuto_liga=0;
int hora_desliga=0;
int minuto_desliga=0;
int x=0;
void setup() {
  lcd.init();
  lcd.backlight();
  while (! relogio.begin()) { 
    delay(500);
  }
  pinMode(7,OUTPUT);//rele
  pinMode(8,INPUT_PULLUP);//acertar relogio     //PullUp: O Pino nasce em 1 (HIGH)
  pinMode(9,INPUT_PULLUP);//acertar horário de acionamento
  pinMode(10,INPUT_PULLUP);//incrementa
  pinMode(11,INPUT_PULLUP);//decrementa
  pinMode(12,INPUT_PULLUP);//Enter/reset
  digitalWrite(7,HIGH);
//  if(!digitalRead(12)) {relogio.adjust(DateTime(ano, mes, dia, hora, minuto));
//     delay(300);
//  } 
}
  
void loop() {
  hora= relogio.now().hour();
  minuto = relogio.now().minute();
  segundo= relogio.now().second();
  lcd.setCursor(3,0);
  if (hora < 10 ){
    lcd.print ( "0" );
  }
  lcd.print (hora);
  lcd.print (":");
  if (minuto < 10 ){
    lcd.print ( "0" );
  }
  lcd.print (minuto);
  lcd.print (":");
  if (segundo < 10 ){
    lcd.print ( "0" );
  }
  lcd.print (segundo);
  lcd.setCursor(3,1);
  if (hora_liga < 10 ){
    lcd.print ( "0" );
  }
  lcd.print (hora_liga);
  lcd.print (":");
  if (minuto_liga < 10 ){
    lcd.print ( "0" );
  }
  lcd.print (minuto_liga);
  lcd.print (" ");
  if (hora_desliga < 10 ){
    lcd.print ( "0" );
  }lcd.print (hora_desliga);
  lcd.print (":");
  if (minuto_desliga < 10 ){
    lcd.print ( "0" );
  }
  lcd.print (minuto_desliga);
}
GND5VSDASCLSQWRTCDS1307+
NOCOMNCVCCGNDINLED1PWRRelay Module