Ok
Ahora si que lo veo claro.
Pues me reitero, muchas gracias por el codigo.
Un saludo
Añado como he cambiado mi reloj en funcion del codigo de Curro92 por si le vale a alguien. El RTC lo he dejado en la hora GMT, en España ahora mismo por ser verano tenemos GMT+2
Me queda la duda de si el RTC interpreta como primer dia de la semana el domingo o el lunes, creo que es el lunes.
Funcion de ajuste hora peninsular:
// ┌──────────────────────────────────────────────┐
// │ FUNCION Ajusta la hora peninsular │
// └──────────────────────────────────────────────┘
void Hora_Peninsular(){
DateTime now = RTC.now();
if(now.month() == 3 && now.day() > 24 && now.dayOfWeek() == 7)
{
if(adelanto == INVIERNO) adelanto = VERANO;
}
if(now.month() == 10 && now.day() > 24 && now.dayOfWeek() == 7)
{
if(adelanto == VERANO) adelanto = INVIERNO;
}
}
Funcion que muestra la hora en el LCD
// ┌──────────────────────────────────────────────┐
// │ FUNCION Muestra Hora │
// └──────────────────────────────────────────────┘
void Muestra_hora(){
Hora_Peninsular();
// Hora real GMT sin los ajustes de +1 o +2 de invierno o verano
DateTime now = RTC.now();
// Hora adelantada en funcion de verano o invierno
DateTime future (now.unixtime() + 3600*adelanto);
// Muestra la fecha en la columna superior
lcd.setCursor(0,0);
lcd.print("Fecha 00-00-0000");
if (future.day() < 10){lcd.setCursor(7,0);} else {lcd.setCursor(6,0);}
lcd.print(future.day(), DEC);
if (future.month() < 10){lcd.setCursor(10,0);} else {lcd.setCursor(9,0);}
lcd.print(future.month(), DEC);
lcd.setCursor(12,0);
lcd.print(future.year(), DEC);
// Muestra la hora en columna inferior
lcd.setCursor(0,1);
lcd.print("Hora 00:00");
if (future.hour() < 10){lcd.setCursor(12,1);} else {lcd.setCursor(11,1);}
lcd.print(future.hour(), DEC);
if (future.minute() < 10){lcd.setCursor(15,1);} else {lcd.setCursor(14,1);}
lcd.print(future.minute(), DEC);
delay(900);
lcd.setCursor(13,1);
lcd.print(' ');
delay(100);
}
La lectura de mi codigo es muy simple, no domino lo bastante como para comprimirlo en menos lineas ahora mismo, ya lo optimizare...