//Curso: Automação com Arduino
//Pasta: 99 - Cursos_AltSyn\AcDc_2024_Automação com Arduino\2024_06_13_Aula_RTC-a
//2024_06_13_12??ª Aula
//Programa: 2024_06_13_Aula_RTC-a
//Exercício:
#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
RTC_DS1307 relogio;
//Declaração das variáveis:
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(); //para ligar luz de fundo
while (! relogio.begin()) { //retorna nível alto qdo inicializa
delay(500); //enqto for = zero fica aqui no while
}
pinMode(7,OUTPUT); //rele
pinMode(8,INPUT_PULLUP); //acertar relogio
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); //Para garantir q o relé vai começar desligado
/*
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 ){ //Para colocar o "zero" na frente do dígito
lcd.print ( "0" ); //qdo a hora for menor que 10 (1h, 2h, 3h...
} //para não ficar assim: 22:1:5 (22 h 1min 5seg)
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); //Para imprimir a segunda linha
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);
*/
}